1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.logging.log4j.core.jackson;
18
19 import java.util.Map;
20
21 import org.apache.logging.log4j.Level;
22 import org.apache.logging.log4j.Marker;
23 import org.apache.logging.log4j.ThreadContext.ContextStack;
24 import org.apache.logging.log4j.core.LogEvent;
25 import org.apache.logging.log4j.core.impl.ThrowableProxy;
26 import org.apache.logging.log4j.message.Message;
27
28 import com.fasterxml.jackson.annotation.JsonFilter;
29 import com.fasterxml.jackson.annotation.JsonIgnore;
30 import com.fasterxml.jackson.annotation.JsonProperty;
31 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
32 import com.fasterxml.jackson.annotation.JsonRootName;
33 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
34 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
35 import com.fasterxml.jackson.databind.deser.std.MapDeserializer;
36 import com.fasterxml.jackson.databind.ser.std.MapSerializer;
37 import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
38 import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
39 import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
40
41 @JsonRootName(XmlConstants.ELT_EVENT)
42 @JacksonXmlRootElement(namespace = XmlConstants.XML_NAMESPACE, localName = XmlConstants.ELT_EVENT)
43 @JsonFilter("org.apache.logging.log4j.core.impl.Log4jLogEvent")
44 @JsonPropertyOrder({ "timeMillis", "threadName", "level", "loggerName", "marker", "message", "thrown", XmlConstants.ELT_CONTEXT_MAP,
45 JsonConstants.ELT_CONTEXT_STACK, "loggerFQCN", "Source", "endOfBatch" })
46 abstract class LogEventJsonMixIn implements LogEvent {
47
48 private static final long serialVersionUID = 1L;
49
50 @JsonProperty(JsonConstants.ELT_CONTEXT_MAP)
51 @JacksonXmlProperty(namespace = XmlConstants.XML_NAMESPACE, localName = XmlConstants.ELT_CONTEXT_MAP)
52
53
54 @Override
55 public abstract Map<String, String> getContextMap();
56
57 @JsonProperty(JsonConstants.ELT_CONTEXT_STACK)
58 @JacksonXmlElementWrapper(namespace = XmlConstants.XML_NAMESPACE, localName = XmlConstants.ELT_CONTEXT_STACK)
59 @JacksonXmlProperty(namespace = XmlConstants.XML_NAMESPACE, localName = XmlConstants.ELT_CONTEXT_STACK_ITEM)
60 @Override
61 public abstract ContextStack getContextStack();
62
63 @JsonProperty()
64 @JacksonXmlProperty(isAttribute = true)
65 @Override
66 public abstract Level getLevel();
67
68 @JsonProperty()
69 @JacksonXmlProperty(isAttribute = true)
70 @Override
71 public abstract String getLoggerFqcn();
72
73 @JsonProperty()
74 @JacksonXmlProperty(isAttribute = true)
75 @Override
76 public abstract String getLoggerName();
77
78 @JsonProperty(JsonConstants.ELT_MARKER)
79 @JacksonXmlProperty(namespace = XmlConstants.XML_NAMESPACE, localName = XmlConstants.ELT_MARKER)
80 @Override
81 public abstract Marker getMarker();
82
83 @JsonProperty(JsonConstants.ELT_MESSAGE)
84 @JsonSerialize(using = MessageSerializer.class)
85 @JsonDeserialize(using = SimpleMessageDeserializer.class)
86 @JacksonXmlProperty(namespace = XmlConstants.XML_NAMESPACE, localName = XmlConstants.ELT_MESSAGE)
87 @Override
88 public abstract Message getMessage();
89
90 @JsonProperty(JsonConstants.ELT_SOURCE)
91 @JsonDeserialize(using = Log4jStackTraceElementDeserializer.class)
92 @JacksonXmlProperty(namespace = XmlConstants.XML_NAMESPACE, localName = XmlConstants.ELT_SOURCE)
93 @Override
94 public abstract StackTraceElement getSource();
95
96 @Override
97 @JsonProperty("threadId")
98 @JacksonXmlProperty(isAttribute = true, localName = "threadId")
99 public abstract long getThreadId();
100
101 @Override
102 @JsonProperty("thread")
103 @JacksonXmlProperty(isAttribute = true, localName = "thread")
104 public abstract String getThreadName();
105
106 @Override
107 @JsonProperty("threadPriority")
108 @JacksonXmlProperty(isAttribute = true, localName = "threadPriority")
109 public abstract int getThreadPriority();
110
111 @JsonIgnore
112 @Override
113 public abstract Throwable getThrown();
114
115 @JsonProperty(JsonConstants.ELT_THROWN)
116 @JacksonXmlProperty(namespace = XmlConstants.XML_NAMESPACE, localName = XmlConstants.ELT_THROWN)
117 @Override
118 public abstract ThrowableProxy getThrownProxy();
119
120 @JsonProperty()
121 @JacksonXmlProperty(isAttribute = true)
122 @Override
123 public abstract long getTimeMillis();
124
125 @JsonProperty()
126 @JacksonXmlProperty(isAttribute = true)
127 @Override
128 public abstract boolean isEndOfBatch();
129
130 @JsonIgnore
131 @Override
132 public abstract boolean isIncludeLocation();
133
134 @Override
135 public abstract void setEndOfBatch(boolean endOfBatch);
136
137 @Override
138 public abstract void setIncludeLocation(boolean locationRequired);
139
140 }