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 private static final long serialVersionUID = 1L;
30 protected static final String DEFAULT_EOL = "\r\n";
31 protected static final String COMPACT_EOL = Strings.EMPTY;
32 protected final String eol;
33 protected final ObjectWriter objectWriter;
34 protected final boolean compact;
35 protected final boolean complete;
36
37 protected AbstractJacksonLayout(final ObjectWriter objectWriter, final Charset charset, final boolean compact, final boolean complete, boolean eventEol) {
38 super(charset);
39 this.objectWriter = objectWriter;
40 this.compact = compact;
41 this.complete = complete;
42 this.eol = compact && !eventEol ? COMPACT_EOL : DEFAULT_EOL;
43 }
44
45
46
47
48
49
50
51 @Override
52 public String toSerializable(final LogEvent event) {
53 try {
54 return this.objectWriter.writeValueAsString(event) + eol;
55 } catch (final JsonProcessingException e) {
56
57 LOGGER.error(e);
58 return Strings.EMPTY;
59 }
60 }
61
62 }