1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.logging.log4j.core.async;
18
19 import org.apache.logging.log4j.Level;
20 import org.apache.logging.log4j.Marker;
21 import org.apache.logging.log4j.core.LogEvent;
22 import org.apache.logging.log4j.core.appender.AsyncAppender;
23 import org.apache.logging.log4j.message.Message;
24
25
26
27
28
29
30
31
32
33
34 public enum EventRoute {
35
36
37
38 ENQUEUE {
39 @Override
40 public void logMessage(final AsyncLogger asyncLogger, final String fqcn, final Level level,
41 final Marker marker, final Message message, final Throwable thrown) {
42 }
43
44 @Override
45 public void logMessage(final AsyncLoggerConfig asyncLoggerConfig, final LogEvent event) {
46 asyncLoggerConfig.callAppendersInBackgroundThread(event);
47 }
48
49 @Override
50 public void logMessage(final AsyncAppender asyncAppender, final LogEvent logEvent) {
51 asyncAppender.logMessageInBackgroundThread(logEvent);
52 }
53 },
54
55
56
57 SYNCHRONOUS {
58 @Override
59 public void logMessage(final AsyncLogger asyncLogger, final String fqcn, final Level level,
60 final Marker marker, final Message message, final Throwable thrown) {
61 }
62
63 @Override
64 public void logMessage(final AsyncLoggerConfig asyncLoggerConfig, final LogEvent event) {
65 asyncLoggerConfig.callAppendersInCurrentThread(event);
66 }
67
68 @Override
69 public void logMessage(final AsyncAppender asyncAppender, final LogEvent logEvent) {
70 asyncAppender.logMessageInCurrentThread(logEvent);
71 }
72 },
73
74
75
76 DISCARD {
77 @Override
78 public void logMessage(final AsyncLogger asyncLogger, final String fqcn, final Level level,
79 final Marker marker, final Message message, final Throwable thrown) {
80
81 }
82
83 @Override
84 public void logMessage(final AsyncLoggerConfig asyncLoggerConfig, final LogEvent event) {
85
86 }
87
88 @Override
89 public void logMessage(final AsyncAppender asyncAppender, final LogEvent coreEvent) {
90
91 }
92 };
93
94 public abstract void logMessage(final AsyncLogger asyncLogger, final String fqcn, final Level level,
95 final Marker marker, final Message message, final Throwable thrown);
96
97 public abstract void logMessage(final AsyncLoggerConfig asyncLoggerConfig, final LogEvent event);
98
99 public abstract void logMessage(final AsyncAppender asyncAppender, final LogEvent coreEvent);
100 }