我正在使用 Log4J 2.0 为我正在做的项目创建日志。日志很小,我需要将它们维护 3 个月。我想要当月的日志,包含 3 个档案(每个档案包含一个月的日志)。
我需要帮助的问题是配置 log4j 以在月初(或月底)轮换日志。
我发现研究这个问题的几乎所有东西都是针对 log4j 1.x 的,并且谈到了在 2.0 中似乎不存在的 datePattern 参数。
这是我的 log4j2.xml 文件:
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="warn" name="NKMS" packages="">
<appenders>
<FastRollingFile name="LogFile" fileName="logs/Tier2HttpServer.log" filePattern="logs/app-%d{yyyy-MM-dd}.log.gz">
<ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout pattern="%d %p %c{1.} [%t] %m%n"/>
<Policies>
<TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="250 MB"/>
</Policies>
<DefaultRolloverStrategy max="4"/>
</FastRollingFile>
<Console name="STDOUT" target="SYSTEM_OUT">
<PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
</Console>
</appenders>
<loggers>
<logger name="mil.navy.nrl.itd.xml_filter" level="trace"/>
<root level="trace">
<appender-ref ref="STDOUT"/>
<appender-ref ref="LogFile"/>
</root>
</loggers>
</configuration>
我正在将 INFO 及以上内容写入日志文件并调试到控制台(现在)。这些文件写得很好,但它们似乎每天都会翻转(这似乎是默认设置)。
我尝试将 FastRollingFile:filePattern 更改为 "'.'yyyy-MM" 但这会导致发生奇怪的事情(只有一个条目写入文件并立即创建存档)。
我下载了 log4j-2.0-beta8 的源代码,PatternProcessor 解析了一个包含枚举 RolloverFrequency.MONTHLY 的 RolloverFrequency,但同样,我不知道如何实现/使用它。
与往常一样,您可以提供的任何帮助或建议将不胜感激!
-高手