【发布时间】:2016-04-28 14:05:36
【问题描述】:
我们在 Window 7 Enterprise 上使用 log4j2。 JBoss Developer Studio 8(这个真的没关系)
RollingFileAppender 正确滚动日志文件,但原始日志文件保留旧日志并继续增加大小。有一个与此相关的 JIRA 错误 (LOG4J2-904)。我遵循了一些选项,例如
- fileIndex="min" 或 fileIndex="max"
- 使用 RollingRandomAccessFile 而不是 RollingFile。
一些 cmets 指出问题已从 log4j 2.4.1 版本开始修复。但是,我在 log4j 2.5 中仍然看到同样的问题。
我尝试同时记录到 RollingFile 和 RollingRandomAccessFile 附加程序。包含Here is the image of Log folder from rollover中的日志文件夹的图像
这是我的 log4j2.xml
<Configuration>
<Properties>
<property name="appname">myapp</property>
<Property name="log-path">${server.dir}/myapp</Property>
</Properties>
<Appenders>
<RollingFile name="DATED_ROLLING_FILE" fileName="${log-path}/${myapp}.log" filePattern="${log-path}/${myapp}_%d{MM-dd-yyyy}-%i.log" maxFileSize="40 KB">
<PatternLayout>
<Pattern>%d: %-5p [%c{1}]:%L - %M %m%n</Pattern>
</PatternLayout>
<Policies>
<OnStartupTriggeringPolicy />
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
<SizeBasedTriggeringPolicy size="40 KB" />
</Policies>
<DefaultRolloverStrategy fileIndex="min" max="100" />
</RollingFile>
<RollingRandomAccessFile name="DATED_RAC_APPENDER" fileName="${log-path}/epermitsrac.log"
filePattern="${log-path}/epermitsrac_%d{MM-dd-yyyy}-%i.log" >
<PatternLayout>
<Pattern>%d: %-5p [%c{1}]:%L - %M %m%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
<SizeBasedTriggeringPolicy size="40 KB" />
</Policies>
<DefaultRolloverStrategy fileIndex="min" max="100" />
</RollingRandomAccessFile>
</Appenders>
<Loggers>
<Root level="INFO">
<AppenderRef ref="DATED_ROLLING_FILE" />
<AppenderRef ref="DATED_RAC_APPENDER" />
</Root>
</Loggers>
</Configuration>
Here is the image of Log folder from rollover。如您所见,它不会清除原始文件。
是否有其他人遇到过同样的问题,是否有解决方法。
【问题讨论】:
-
你能把 TimeBasedTriggeringPolicy 换成 CronTriggeringPolicy 看看有什么不同吗?
-
您是否有多个进程或网络应用具有相同的配置(写入同一个文件)?
-
感谢您的回复。 @RemkoPopma,我们没有多个网络应用程序写入同一个文件。抱歉回复晚了。
-
@rgoers 我还没有尝试过 CronTriggeringPolicy。感谢您的建议。
标签: java logging log4j2 rollingfileappender