Log4j2:RollingFile appender不会将日志写入文件

时间:2017-02-14 08:02:55

标签: java log4j2

我的log4j2.xml如下:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Appenders>
        <Async name="ASYNC">
            <AppenderRef ref="R"/>
        </Async>

        <RollingFile name="R" fileName="${sys:catalina.home}/logs/myServer.log" filePattern="${sys:catalina.home}/logs/myServer.log.%d{yyyy-MM-dd}">
            <PatternLayout pattern="%d %-5p [%t] %C{2} - %m%n"/>
            <Policies>
                <TimeBasedTriggeringPolicy/>
            </Policies>
        </RollingFile>      
    </Appenders>

    <Loggers>        
        <Logger name="com.ps" level="WARN" additivity="false">
            <AppenderRef ref="ASYNC"/>
        </Logger>       

        <Root level="WARN">
            <AppenderRef ref="ASYNC"/>
        </Root>
    </Loggers>
</Configuration>

此配置仅创建myServer.log文件,并且不滚动文件也不会将日志写入其中。

使用权限创建日志文件:

ls -ltr my*
-rw-------. 1 root root      0 Feb 14 18:15 myServer.log

我做错了什么?

2 个答案:

答案 0 :(得分:1)

您应该添加对Rolling文件Appender的引用,以获取在文件中写入的日志。

<Root level="WARN">
    <AppenderRef ref="ASYNC"/>
    <AppenderRef ref="R"/>
 </Root>

有关配置log4j2的更多信息,请访问here

答案 1 :(得分:0)

<AppenderRef ref="R"/>标记下添加<Root level="WARN">,然后重试。