首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Log4j2记录Spring

使用Log4j2记录Spring
EN

Stack Overflow用户
提问于 2013-05-02 22:43:35
回答 2查看 23.1K关注 0票数 19

我正在尝试使用Log4j2将spring日志打印到文件和控制台中。我猜是我的Log4j2配置出了问题。我还没能让它工作起来。我的log4j2.xml文件中有以下配置:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<configuration name="defaultConfiguration" status="warn" strict="true" monitorInterval="5">
    <properties>
        <property name="patternlayout">%d{ISO8601} [%t] %-5level %logger{36} - %msg%n%throwable{full}</property>
        <property name="filename">${env:MY_ROOT}/logs/mylog.log</property>
        <property name="filenamePattern">${env:MY_ROOT}/logs/mylog-%d{yyyy-dd-MM}-%i.log.gz</property>
    </properties>
    <appenders>
        <appender name="Console" type="Console" target="SYSTEM_OUT">
            <layout type="PatternLayout" pattern="${patternlayout}" />
        </appender>
        <appender name="File" type="RollingFile" fileName="${filename}" filePattern="${filenamePattern}" bufferedIO="true" immediateFlush="true"
        append="true">
            <layout type="PatternLayout" pattern="${patternlayout}" />
            <Policies>
                <TimeBasedTriggeringPolicy />
                <SizeBasedTriggeringPolicy size="50 MB" />
            </Policies>
            <DefaultRolloverStrategy max="30" />
        </appender>
        <appender name="AsynchFile" type="asynch" blocking="true" bufferSize="128">
            <appender-ref ref="File" />
        </appender>
    </appenders>
    <loggers>
        <root level="info">
            <appender-ref ref="Console" />
            <appender-ref ref="AsynchFile" />
        </root>
        <logger name="org.springframework.beans">
            <appender-ref ref="Console" />
            <appender-ref ref="AsynchFile" />
        </logger>
    </loggers>
</configuration>

这些是我的pom文件中的依赖项:(其中一些可能不是必需的)

代码语言:javascript
复制
<dependency>
 <groupId>org.slf4j</groupId>
 <artifactId>slf4j-api</artifactId>
 <version>1.6.6</version>
</dependency>

<dependency>
 <groupId>org.slf4j</groupId>
 <artifactId>slf4j-log4j12</artifactId>
 <version>1.6.6</version>
</dependency>

<dependency>
 <groupId>org.apache.logging.log4j</groupId>
 <artifactId>log4j-api</artifactId>
 <version>2.0-beta5</version>
</dependency>

<dependency>
 <groupId>org.apache.logging.log4j</groupId>
 <artifactId>log4j-core</artifactId>
 <version>2.0-beta5</version>
</dependency>
<dependency>
 <groupId>org.apache.logging.log4j</groupId>
 <artifactId>log4j-1.2-api</artifactId>
 <version>2.0-beta5</version>
</dependency>

<dependency>
 <groupId>com.lmax</groupId>
 <artifactId>disruptor</artifactId>
 <version>3.0.0.beta3</version>
</dependency>

在我的Java代码中,我没有做任何与spring相关的事情。我使用的是Apache Camel的主类,它读取我的spring配置并加载bean。

我做错了什么?谢谢!

编辑:我在任何输出(控制台或文件)中都没有得到spring日志。但是,我能够获得我在java代码中创建的日志。我希望这个澄清会有所帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-03 21:43:06

查看pom中的依赖项,您会看到这个依赖项: slf4j-log4j12。这会导致针对Log4jAPI的日志语句被路由到slf4j -1.2实现。您可能希望将这些内容路由到Log4j-2.0实现。能否将slf4j-log4j12替换为log4j-slf4j-impl并重试?

票数 15
EN

Stack Overflow用户

发布于 2016-02-26 14:03:00

这个问题是由spring使用common-logging 1.X引起的,因此如果您希望将此日志记录路由到Log4j 2,则需要在pom.xml中添加依赖项

代码语言:javascript
复制
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-jcl</artifactId>
    <version>2.1</version>
 </dependency>

不要删除通用日志记录1.X依赖项

票数 21
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16341020

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档