我在我的应用程序中配置了log4j2,但我的一些第三方依赖项使用了log4j(1.2)。有没有办法使用log4j2.xml来记录来自log4j的日志?
或者我是否必须维护两个配置文件,一个用于log4j2,另一个用于log4j。
这是我使用的log4j2配置;
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Properties>
<Property name="logFiles">./logs</Property>
</Properties>
<Appenders>
<Console name="sysOut" target="SYSTEM_OUT">
<PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
</Console>
<Loggers>
<logger name="org.sample.core" level="debug">
<AppenderRef ref="sysOut"/>
</logger>
<Logger name="org.apache.log4j.xml" level="debug">
<AppenderRef ref="sysOut"/>
</Logger>
<Root level="warn">
<AppenderRef ref="sysOut"/>
</Root>
</Loggers>
</Configuration>
答案 0 :(得分:0)
最简单的方法是使用log4j2中包含的log4j-1.2网桥jar。 请参阅Log4j 1.2 Migration Guide。 (确保从类路径中删除旧版log4j-1.2.x.jar!)
您只需要Log4j 2配置。
答案 1 :(得分:0)
首先排除其他第三方依赖项中的每个log4j12依赖项:
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
然后添加log4j-over-slf4j依赖项,通常需要上面排除的log4j的任何东西都将使用log4j-over-slf4j。
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>log4j-over-slf4j</artifactId>
<version>1.7.13</version>
</dependency>