如何使用log4j2记录log4j日志

时间:2015-10-27 06:38:26

标签: java logging log4j2

我在我的应用程序中配置了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>

2 个答案:

答案 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>