我试图每小时创建一个新的日志文件。我在 RollingFileAppender 中使用 lo4j2 的 TimeBasedTriggerringPolicy。下面是我从 log4j2 官方网站获取的示例 xml 配置代码。
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
<Appenders>
<RollingFile name="RollingFile" fileName="logs/app.log" filePattern="logs/$${date:yyyy-MM}/app-%d{yyyy-MM-dd-HH}-%i.log.gz">
<PatternLayout>
<Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
</PatternLayout>
<Policies>
**
<TimeBasedTriggeringPolicy interval="1" modulate="true" />
**
<SizeBasedTriggeringPolicy size="250 MB" />
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="RollingFile" />
</Root>
</Loggers>
</Configuration>
在 interval 属性中,我设置了 1 表示 1 小时。但我的文件仍然不会每 1 小时滚动一次。
请帮我找出任何错误。
注意:我已经包含了 log4j2 的 beta9(这是最新的)
原文由 user1890780 发布,翻译遵循 CC BY-SA 4.0 许可协议
这里的 1 表示 1 天而不是 1 小时。我已经使用以下配置手动测试。
对于手动测试,我更改了系统日期和时间。首先,尝试增加 1 小时。将生成日志文件,但不会按预期生成。然后更改系统日期,增加1天,然后查看结果。
假设 10 月 29 日的最后一个日志文件 (abc.log) 为 50 KB。配置大小为 100 KB。如果我们更改日期(增加 1 天)然后运行。然后,最后一个文件将重命名为 29-Oct-(一些序列号).log(复制后的 50 KB 文件),新文件将使用 abc.log 创建
我已经在 web.xml 中使用具有以下配置的简单 servlet 进行了尝试
将 log4j2.xml 保存在 src 文件夹中。如果我们将其保存在类路径中,则不会加载 log4j2.xml。