2017-02-14 247 views
2

log4j2.xml如下:Log4j2:RollingFile的appender不写日志文件到

<?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 

我做错了吗?

回答

0

添加<AppenderRef ref="R"/>以及<Root level="WARN">标签并重试。

1

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

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

的更多信息,可以发现here