Skip to content

Commit 06b4007

Browse files
committed
Avoid installing unwanted ConsoleHandler when cleaning up
Closes gh-13470
1 parent 01abb19 commit 06b4007

File tree

1 file changed

+4
-11
lines changed

1 file changed

+4
-11
lines changed

spring-boot-project/spring-boot/src/main/java/org/springframework/boot/logging/Slf4JLoggingSystem.java

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@ public void beforeInitialize() {
5050
public void cleanUp() {
5151
if (isBridgeHandlerAvailable()) {
5252
removeJdkLoggingBridgeHandler();
53-
reinstateConsoleHandlerIfNecessary();
5453
}
5554
}
5655

@@ -81,17 +80,18 @@ private void configureJdkLoggingBridgeHandler() {
8180
* @since 2.0.4
8281
*/
8382
protected final boolean isBridgeJulIntoSlf4j() {
84-
return isBridgeHandlerAvailable() && isJulUsingItsDefaultConfiguration();
83+
return isBridgeHandlerAvailable() && isJulUsingASingleConsoleHandlerAtMost();
8584
}
8685

8786
protected final boolean isBridgeHandlerAvailable() {
8887
return ClassUtils.isPresent(BRIDGE_HANDLER, getClassLoader());
8988
}
9089

91-
private boolean isJulUsingItsDefaultConfiguration() {
90+
private boolean isJulUsingASingleConsoleHandlerAtMost() {
9291
Logger rootLogger = LogManager.getLogManager().getLogger("");
9392
Handler[] handlers = rootLogger.getHandlers();
94-
return handlers.length == 1 && handlers[0] instanceof ConsoleHandler;
93+
return handlers.length == 0
94+
|| (handlers.length == 1 && handlers[0] instanceof ConsoleHandler);
9595
}
9696

9797
private void removeJdkLoggingBridgeHandler() {
@@ -117,11 +117,4 @@ private void removeDefaultRootHandler() {
117117
}
118118
}
119119

120-
private void reinstateConsoleHandlerIfNecessary() {
121-
Logger rootLogger = LogManager.getLogManager().getLogger("");
122-
if (rootLogger.getHandlers().length == 0) {
123-
rootLogger.addHandler(new ConsoleHandler());
124-
}
125-
}
126-
127120
}

0 commit comments

Comments
 (0)