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.logInBackgroundThread(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
58
59 SYNCHRONOUS {
60 @Override
61 public void logMessage(final AsyncLogger asyncLogger, final String fqcn, final Level level,
62 final Marker marker, final Message message, final Throwable thrown) {
63 }
64
65 @Override
66 public void logMessage(final AsyncLoggerConfig asyncLoggerConfig, final LogEvent event) {
67 asyncLoggerConfig.logToAsyncLoggerConfigsOnCurrentThread(event);
68 }
69
70 @Override
71 public void logMessage(final AsyncAppender asyncAppender, final LogEvent logEvent) {
72 asyncAppender.logMessageInCurrentThread(logEvent);
73 }
74 },
75
76
77
78 DISCARD {
79 @Override
80 public void logMessage(final AsyncLogger asyncLogger, final String fqcn, final Level level,
81 final Marker marker, final Message message, final Throwable thrown) {
82
83 }
84
85 @Override
86 public void logMessage(final AsyncLoggerConfig asyncLoggerConfig, final LogEvent event) {
87
88 }
89
90 @Override
91 public void logMessage(final AsyncAppender asyncAppender, final LogEvent coreEvent) {
92
93 }
94 };
95
96 public abstract void logMessage(final AsyncLogger asyncLogger, final String fqcn, final Level level,
97 final Marker marker, final Message message, final Throwable thrown);
98
99 public abstract void logMessage(final AsyncLoggerConfig asyncLoggerConfig, final LogEvent event);
100
101 public abstract void logMessage(final AsyncAppender asyncAppender, final LogEvent coreEvent);
102 }