为什么我的log4j2滚动日志包括前几天'日志条目?

时间:2016-06-01 14:03:49

标签: java tomcat logging log4j2

我使用log4j 2.5进行Tomcat Web应用程序日志记录。有两个应用程序服务器都写入网络路径上的同一个日志文件。

我的日志文件大小滚雪球,因为每个新的一天的日志文件都包含前几天的所有日期'条目。

例如,myLog-2016-06-01.log包含从5-20(实施日)到06-01的所有日志记录,而myLog-05-31包含从5-20到5-的所有日志记录31,等等......

我假设我不了解XML配置文件的工作原理。

log4j2.xml中的相关信息如下所示:

<?xml version="1.0" encoding="UTF-8"?>  
<Configuration status="trace">  
<Appenders>  
    <RollingRandomAccessFile name="RollingFileLogger" 
                             fileName="[...]\myLog.log" 
                             filePattern="[...]\myLog-%d{yyyy-MM-dd}.log">
        <PatternLayout pattern="%n %n %d ${hostName} %p %c: %msg"/>  
        <Policies>
            <TimeBasedTriggeringPolicy/>
        </Policies>
        <DefaultRolloverStrategy max="10"/>
    </RollingRandomAccessFile>
    <Console name="ConsoleLogger" target="SYSTEM_OUT"> 
        <PatternLayout pattern="%d{HH:mm:ss} [%t] %-5level %logger{36} - %msg%n"/>
    </Console>
</Appenders>  
<Loggers>  
    <Root level="trace">  
        <AppenderRef ref="RollingFileLogger"/>
        <AppenderRef ref="ConsoleLogger"/>  
    </Root>  
</Loggers>  

1 个答案:

答案 0 :(得分:0)

根据Roman的评论,答案是使用SocketAppender和随附的套接字服务器将所有网络应用程序的所有记录器调用汇集到一个appender中。现在工作得很好。