Issue
I use spring boot 1.2.1.RELEASE and noticed that spring automatically changes my log4j configuration on startup.
Here are my (spring) dependencies:
<!-- parent includes slf4j and log4j -->
<dependencies>
<dependency>
<!-- Import dependency management from Spring Boot -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>1.1.2.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>1.1.2.RELEASE</version>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
<version>1.1.2.RELEASE</version>
</dependency>
<dependency>
<groupId>de.komoot.wanderwalter</groupId>
<artifactId>wanderwalter-api-models</artifactId>
<version>1.26-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>de.komoot.wanderwalter</groupId>
<artifactId>wanderwalter-routing</artifactId>
<version>1.26-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.graphhopper</groupId>
<artifactId>graphhopper</artifactId>
<version>0.3-kmt</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
</dependencies>
<dependencyManagement>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.3</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.8</version>
</dependency>
</dependencies>
</dependencyManagement>
When I start my application with -Dlog4j.configuration=log4j-live.xml -Dlog4j.debug
I can see that first my log4j config is used, then spring cleans it and installs its own config and then (this is what I guess) adds the default log4j.xml from the classpath.
How can I use only the default log4j behavior or how can I define which of my files spring shall use for configuration?
Cheers,
Jan
Solution
Spring Boot uses a logging system-agnostic property to override the default configuration:
So use -Dlogging.config=log4j-live.xml -Dlog4j.debug
instead.
Answered By - celkins
Answer Checked By - Mary Flores (JavaFixing Volunteer)