Log4j2 rc 1 DefaultRolloverStrategy 在 7 个文件后覆盖
Log4j2 rc 1 DefaultRolloverStrategy overwrites after 7 files
我正在使用 lo4j2 rc1,RollingFile 包含 TimeBasedTriggeringPolicy、SizeBasedTriggeringPolicy 和 DefaultRolloverStrategy,最大文件数为 50。但是回滚文件在 7 个文件后被覆盖。
下面是我的配置
<Appenders>
<Routing name="ServerLogs">
<Routes pattern="$${ctx:logRouter}/">
<Route>
<RollingFile name="ServerLogs" immediateFlush="false" append="false"
fileName="${loghome}/${ctx:logRouter}/ServerLogs.log"
filePattern="${loghome}/${ctx:logRouter}/%d{dd-MM-yyyy}-ServerLogs-%i.log.gz">
<PatternLayout>
<Pattern>%d %p %-40C{1.} [%t] %m %ex%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="1"
modulate="true" />
<SizeBasedTriggeringPolicy size="4 MB" />
<DefaultRolloverStrategy max="50"/>
</Policies>
</RollingFile>
</Route>
</Routes>
</Routing>
</Appenders>
<Loggers>
<AsyncLogger name="AsyncServerLogs" level="TRACE" includeLocation="false">
<AppenderRef ref="ServerLogs"/>
</AsyncLogger>
<Root level="DEBUG" includeLocation="false">
<AppenderRef ref="ServerLogs" level="TRACE" />
</Root>
</Loggers>
我是否缺少任何配置?
您的 <DefaultRolloverStrategy max="50"/>
元素位置错误。
这不是政策,因此不属于 <Policies>
元素。事实上,您甚至可能会在日志中看到以下内容:
ERROR Policies has no parameter that matches element DefaultRolloverStrategy
将其上移一个级别,使其成为 <RollingFile>
元素的直接子元素。
我正在使用 lo4j2 rc1,RollingFile 包含 TimeBasedTriggeringPolicy、SizeBasedTriggeringPolicy 和 DefaultRolloverStrategy,最大文件数为 50。但是回滚文件在 7 个文件后被覆盖。 下面是我的配置
<Appenders>
<Routing name="ServerLogs">
<Routes pattern="$${ctx:logRouter}/">
<Route>
<RollingFile name="ServerLogs" immediateFlush="false" append="false"
fileName="${loghome}/${ctx:logRouter}/ServerLogs.log"
filePattern="${loghome}/${ctx:logRouter}/%d{dd-MM-yyyy}-ServerLogs-%i.log.gz">
<PatternLayout>
<Pattern>%d %p %-40C{1.} [%t] %m %ex%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="1"
modulate="true" />
<SizeBasedTriggeringPolicy size="4 MB" />
<DefaultRolloverStrategy max="50"/>
</Policies>
</RollingFile>
</Route>
</Routes>
</Routing>
</Appenders>
<Loggers>
<AsyncLogger name="AsyncServerLogs" level="TRACE" includeLocation="false">
<AppenderRef ref="ServerLogs"/>
</AsyncLogger>
<Root level="DEBUG" includeLocation="false">
<AppenderRef ref="ServerLogs" level="TRACE" />
</Root>
</Loggers>
我是否缺少任何配置?
您的 <DefaultRolloverStrategy max="50"/>
元素位置错误。
这不是政策,因此不属于 <Policies>
元素。事实上,您甚至可能会在日志中看到以下内容:
ERROR Policies has no parameter that matches element DefaultRolloverStrategy
将其上移一个级别,使其成为 <RollingFile>
元素的直接子元素。