我使用了Sping Boot 1.2.1.RELEASE,并注意到Spring在启动时会自动更改我的log4j配置。
以下是我的( Spring )依赖项:
<!-- 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>
当我用-Dlog4j.configuration=log4j-live.xml -Dlog4j.debug
启动我的应用程序时,我可以看到首先使用了我的log4j配置,然后spring清理它并安装它自己的配置,然后(我猜是这样)从类路径中添加默认的log4j.xml。
我如何才能只使用默认的log4j行为,或者我如何才能定义spring将使用哪个文件进行配置?
干杯,
扬
2条答案
按热度按时间esbemjvw1#
Sping Boot 使用与日志记录系统无关的属性来覆盖默认配置:
If the environment contains a property
logging.config
then that will be used to initialize the logging system, otherwise a default location is used.因此,请改用
-Dlogging.config=log4j-live.xml -Dlog4j.debug
。cx6n0qe32#
我在以下设置中遇到了类似问题:
log4j-1配置(和API使用)通过log4j-1.2-api工件桥接到log4j 2(并在命令行上定义“-Dlog4j1.compatibility=true”)
按照celkins的建议定义logging.config(连接到V1 log4j.xml)没有帮助,因为spring的重新配置甚至失败了,因为实现不知道log4j V1配置语法(sax解析错误)。
我的解决方案是:
设置命令行属性
这让Spring示例化一个不执行任何操作的NoOp LoggingSystem。