Java Log4j2 rc 1 DefaultRolloverStrategy在7个文件之后覆盖
我使用的是lo4j2 rc1,其中RollingFile包含TimeBasedTriggeringPolicy、SizeBadeTriggeringPolicy和DefaultRolloverStrategy,最大文件数为50。但是回滚的文件在7个文件之后被覆盖。 下面是我的配置Java Log4j2 rc 1 DefaultRolloverStrategy在7个文件之后覆盖,java,log4j2,Java,Log4j2,我使用的是lo4j2 rc1,其中RollingFile包含TimeBasedTriggeringPolicy、SizeBadeTriggeringPolicy和DefaultRolloverStrategy,最大文件数为50。但是回滚的文件在7个文件之后被覆盖。 下面是我的配置 <Appenders> <Routing name="ServerLogs"> <Routes pattern="$${ctx:logRouter}/">
<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>
%d%p%40C{1.}[%t]%m%ex%n
我是否缺少任何配置?您的
元素位于错误的位置
它不是策略,因此不属于
元素。事实上,您甚至可以在日志中看到以下内容:
错误策略没有与元素DefaultRolloverStrategy匹配的参数
将其上移一级,使其成为
元素的直接子元素。非常感谢。是的,我得到了上面提到的错误。当它还是一个孩子的时候把它搬走后,它工作得很好。还有一个问题,使用异步记录器,主线程是否会等待记录器线程完成?@Samy:如果您有单独的问题要问,请提出单独的问题。我在Log4j2中没有使用异步记录器,所以我无法回答这个问题。