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 org.apache.logging.log4j.core.jackson.Initializers.SetupContextInitializer;
20 import org.apache.logging.log4j.core.jackson.Initializers.SetupContextJsonInitializer;
21 import org.apache.logging.log4j.core.jackson.Initializers.SimpleModuleInitializer;
22
23 import com.fasterxml.jackson.core.Version;
24 import com.fasterxml.jackson.databind.module.SimpleModule;
25
26
27
28
29
30
31 class Log4jJsonModule extends SimpleModule {
32
33 private static final long serialVersionUID = 1L;
34 private final boolean encodeThreadContextAsList;
35 private final boolean includeStacktrace;
36 private final boolean stacktraceAsString;
37 private final boolean objectMessageAsJsonObject;
38
39 Log4jJsonModule(final boolean encodeThreadContextAsList, final boolean includeStacktrace, final boolean stacktraceAsString, final boolean objectMessageAsJsonObject) {
40 super(Log4jJsonModule.class.getName(), new Version(2, 0, 0, null, null, null));
41 this.encodeThreadContextAsList = encodeThreadContextAsList;
42 this.includeStacktrace = includeStacktrace;
43 this.stacktraceAsString = stacktraceAsString;
44 this.objectMessageAsJsonObject = objectMessageAsJsonObject;
45
46
47
48 new SimpleModuleInitializer().initialize(this, objectMessageAsJsonObject);
49 }
50
51 @Override
52 public void setupModule(final SetupContext context) {
53
54 super.setupModule(context);
55 if (encodeThreadContextAsList) {
56 new SetupContextInitializer().setupModule(context, includeStacktrace, stacktraceAsString);
57 } else {
58 new SetupContextJsonInitializer().setupModule(context, includeStacktrace, stacktraceAsString);
59 }
60 }
61 }