2

我正在通过 SLF4J 将我的一个应用程序更新为 Log4J2,但我在使用 Spring 时遇到了麻烦。

除了“正常”(正确)日志输出

2013-05-24 20:02:00,490 INFO  [main] application.Application (Application.java:33) - Application started with arguments []

我得到这样的线条

Mai 24, 2013 8:02:00 PM org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@5dfb3d5c: startup date [Fri May 24 20:02:00 CEST 2013]; root of context hierarchy

在 System.err 上,所以 spring 没有使用我的 Log4J2 配置进行日志记录。

这些是我的配置文件:

pom.xml

<slf4j.version>1.7.4</slf4j.version>
<log4j.version>2.0-beta6</log4j.version>

...

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>${slf4j.version}</version>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>${log4j.version}</version>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>${log4j.version}</version>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-slf4j-impl</artifactId>
    <version>${log4j.version}</version>
</dependency>

log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <appenders>
        <File name="file" fileName="error.log" append="true">
            <PatternLayout pattern="%t %-5p %c{2} - %m%n"/>
        </File>
        <Console name="console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
        </Console>
    </appenders>
    <loggers>
        <root level="all">
            <appender-ref ref="file"/>
            <appender-ref ref="console"/>
        </root>
        <logger name="org.springframework" level="error">
            <appender-ref ref="file"/>
            <appender-ref ref="console"/>
        </logger>
    </loggers>
</configuration>
4

1 回答 1

6

Spring 使用commons-logging框架进行日志记录。因此,您应该commons-logging使用 Maven 排除从 Spring 中排除依赖并将 Maven 依赖添加到jcl-over-slf4j

于 2013-05-25T01:53:46.087 回答