Skip to content

Commit 44613d0

Browse files
committed
Inline EventRoute methods
1 parent 9543bee commit 44613d0

File tree

3 files changed

+25
-82
lines changed

3 files changed

+25
-82
lines changed

log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AsyncAppender.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,17 @@ public void append(final LogEvent logEvent) {
173173
} else {
174174
// delegate to the event router (which may discard, enqueue and block, or log in current thread)
175175
final EventRoute route = asyncQueueFullPolicy.getRoute(dispatcher.getId(), memento.getLevel());
176-
route.logMessage(this, memento);
176+
switch (route) {
177+
case DISCARD:
178+
break;
179+
case ENQUEUE:
180+
logMessageInBackgroundThread(memento);
181+
break;
182+
case SYNCHRONOUS:
183+
logMessageInCurrentThread(memento);
184+
break;
185+
default:
186+
}
177187
}
178188
} else {
179189
error("Appender " + getName() + " is unable to write primary appenders. queue is full");

log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerConfig.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,17 @@ private void handleQueueFull(final LogEvent event) {
175175
} else {
176176
// otherwise, we leave it to the user preference
177177
final EventRoute eventRoute = delegate.getEventRoute(event.getLevel());
178-
eventRoute.logMessage(this, event);
178+
switch (eventRoute) {
179+
case DISCARD:
180+
break;
181+
case ENQUEUE:
182+
logInBackgroundThread(event);
183+
break;
184+
case SYNCHRONOUS:
185+
logToAsyncLoggerConfigsOnCurrentThread(event);
186+
break;
187+
default:
188+
}
179189
}
180190
}
181191

log4j-core/src/main/java/org/apache/logging/log4j/core/async/EventRoute.java

Lines changed: 3 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,6 @@
1616
*/
1717
package org.apache.logging.log4j.core.async;
1818

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-
2519
/**
2620
* Enumeration over the different destinations where a log event can be sent.
2721
*
@@ -35,86 +29,15 @@ public enum EventRoute {
3529
/**
3630
* Enqueues the event for asynchronous logging in the background thread.
3731
*/
38-
ENQUEUE {
39-
@Override
40-
public void logMessage(
41-
final AsyncLogger asyncLogger,
42-
final String fqcn,
43-
final Level level,
44-
final Marker marker,
45-
final Message message,
46-
final Throwable thrown) {}
47-
48-
@Override
49-
public void logMessage(final AsyncLoggerConfig asyncLoggerConfig, final LogEvent event) {
50-
asyncLoggerConfig.logInBackgroundThread(event);
51-
}
52-
53-
@Override
54-
public void logMessage(final AsyncAppender asyncAppender, final LogEvent logEvent) {
55-
asyncAppender.logMessageInBackgroundThread(logEvent);
56-
}
57-
},
32+
ENQUEUE,
5833
/**
5934
* Logs the event synchronously: sends the event directly to the appender (in the current thread).
6035
* WARNING: This may result in lines logged out of order as synchronous events may be persisted before
6136
* earlier events, even from the same thread, which wait in the queue.
6237
*/
63-
SYNCHRONOUS {
64-
@Override
65-
public void logMessage(
66-
final AsyncLogger asyncLogger,
67-
final String fqcn,
68-
final Level level,
69-
final Marker marker,
70-
final Message message,
71-
final Throwable thrown) {}
72-
73-
@Override
74-
public void logMessage(final AsyncLoggerConfig asyncLoggerConfig, final LogEvent event) {
75-
asyncLoggerConfig.logToAsyncLoggerConfigsOnCurrentThread(event);
76-
}
77-
78-
@Override
79-
public void logMessage(final AsyncAppender asyncAppender, final LogEvent logEvent) {
80-
asyncAppender.logMessageInCurrentThread(logEvent);
81-
}
82-
},
38+
SYNCHRONOUS,
8339
/**
8440
* Discards the event (so it is not logged at all).
8541
*/
86-
DISCARD {
87-
@Override
88-
public void logMessage(
89-
final AsyncLogger asyncLogger,
90-
final String fqcn,
91-
final Level level,
92-
final Marker marker,
93-
final Message message,
94-
final Throwable thrown) {
95-
// do nothing: drop the event
96-
}
97-
98-
@Override
99-
public void logMessage(final AsyncLoggerConfig asyncLoggerConfig, final LogEvent event) {
100-
// do nothing: drop the event
101-
}
102-
103-
@Override
104-
public void logMessage(final AsyncAppender asyncAppender, final LogEvent coreEvent) {
105-
// do nothing: drop the event
106-
}
107-
};
108-
109-
public abstract void logMessage(
110-
final AsyncLogger asyncLogger,
111-
final String fqcn,
112-
final Level level,
113-
final Marker marker,
114-
final Message message,
115-
final Throwable thrown);
116-
117-
public abstract void logMessage(final AsyncLoggerConfig asyncLoggerConfig, final LogEvent event);
118-
119-
public abstract void logMessage(final AsyncAppender asyncAppender, final LogEvent coreEvent);
42+
DISCARD;
12043
}

0 commit comments

Comments
 (0)