From e9c649dfb2b1653f5e4f2fed421aa053e6fd42ce Mon Sep 17 00:00:00 2001 From: johnou Date: Mon, 16 Dec 2013 12:33:54 +0100 Subject: [PATCH] Avoid double logging config init + support for slf4j-log4j. --- .../boot/logging/AbstractLoggingSystem.java | 1 - .../boot/logging/log4j/Log4JLoggingSystem.java | 11 +++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/spring-boot/src/main/java/org/springframework/boot/logging/AbstractLoggingSystem.java b/spring-boot/src/main/java/org/springframework/boot/logging/AbstractLoggingSystem.java index fe1698a5d9..935f4aaf34 100644 --- a/spring-boot/src/main/java/org/springframework/boot/logging/AbstractLoggingSystem.java +++ b/spring-boot/src/main/java/org/springframework/boot/logging/AbstractLoggingSystem.java @@ -42,7 +42,6 @@ public abstract class AbstractLoggingSystem extends LoggingSystem { @Override public void beforeInitialize() { - initializeWithSensibleDefaults(); } @Override diff --git a/spring-boot/src/main/java/org/springframework/boot/logging/log4j/Log4JLoggingSystem.java b/spring-boot/src/main/java/org/springframework/boot/logging/log4j/Log4JLoggingSystem.java index da46a2b212..b054ce8651 100644 --- a/spring-boot/src/main/java/org/springframework/boot/logging/log4j/Log4JLoggingSystem.java +++ b/spring-boot/src/main/java/org/springframework/boot/logging/log4j/Log4JLoggingSystem.java @@ -23,10 +23,12 @@ import java.util.Map; import org.apache.log4j.Level; import org.apache.log4j.LogManager; import org.apache.log4j.Logger; +import org.slf4j.bridge.SLF4JBridgeHandler; import org.springframework.boot.logging.AbstractLoggingSystem; import org.springframework.boot.logging.LogLevel; import org.springframework.boot.logging.LoggingSystem; import org.springframework.util.Assert; +import org.springframework.util.ClassUtils; import org.springframework.util.Log4jConfigurer; import org.springframework.util.StringUtils; @@ -54,6 +56,15 @@ public class Log4JLoggingSystem extends AbstractLoggingSystem { super(classLoader, "log4j.xml", "log4j.properties"); } + @Override + public void beforeInitialize() { + super.beforeInitialize(); + if (ClassUtils.isPresent("org.slf4j.bridge.SLF4JBridgeHandler", getClassLoader())) { + SLF4JBridgeHandler.removeHandlersForRootLogger(); + SLF4JBridgeHandler.install(); + } + } + @Override public void initialize(String configLocation) { Assert.notNull(configLocation, "ConfigLocation must not be null");