1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.logging.log4j.core.layout;
18
19 import java.nio.charset.Charset;
20
21 import org.apache.logging.log4j.core.LogEvent;
22 import org.apache.logging.log4j.util.Strings;
23
24 import com.fasterxml.jackson.core.JsonProcessingException;
25 import com.fasterxml.jackson.databind.ObjectWriter;
26
27 abstract class AbstractJacksonLayout extends AbstractStringLayout {
28
29 protected static final String DEFAULT_EOL = "\r\n";
30 protected static final String COMPACT_EOL = Strings.EMPTY;
31 private static final long serialVersionUID = 1L;
32
33 protected final String eol;
34 protected final ObjectWriter objectWriter;
35 protected final boolean compact;
36 protected final boolean complete;
37
38 protected AbstractJacksonLayout(final ObjectWriter objectWriter, final Charset charset, final boolean compact, final boolean complete, final boolean eventEol) {
39 super(charset);
40 this.objectWriter = objectWriter;
41 this.compact = compact;
42 this.complete = complete;
43 this.eol = compact && !eventEol ? COMPACT_EOL : DEFAULT_EOL;
44 }
45
46
47
48
49
50
51
52 @Override
53 public String toSerializable(final LogEvent event) {
54 try {
55 return this.objectWriter.writeValueAsString(event) + eol;
56 } catch (final JsonProcessingException e) {
57
58 LOGGER.error(e);
59 return Strings.EMPTY;
60 }
61 }
62
63 }