【发布时间】:2016-04-15 20:39:06
【问题描述】:
我正在尝试为 log4j2 文件添加路由以记录到名称包含其进程 ID 的文件。这使用路由并指定一些注入进程ID查找的代码。但是,这些文件似乎不再正确存档 - 每次我启动进程时,都会使用进程 ID 正确生成一个新文件,但是存档目录中没有任何内容。
此外,即使我不使用路由,而只是使用带有 OnstartupTriggeringPolicy 的 RollingFile 附加程序,我也无法弄清楚如何在存档中最多保留 5 个文件。
<Routing name="Routing">
<Routes pattern="$${process:Id}">
<Route>
<RollingFile name="logFile"
fileName="${LOG_DIR}/erdaemon-${process:Id}.log"
filePattern="${ARCHIVE}/erdaemon.%d{yyyy-MM-dd-hh-mm}.log">
<PatternLayout pattern="${PATTERN}" />
<Policies>
<OnStartupTriggeringPolicy />
</Policies>
</RollingFile>
</Route>
</Routes>
</Routing>
<Async name="async" bufferSize="1000" includeLocation="true">
<AppenderRef ref="Routing" />
</Async>
</Appenders>
<Loggers>
<Root level="INFO">
<AppenderRef ref="async"/>
</Root>
<Logger name="testlogger" level="TRACE" additivity="false">
<AppenderRef ref="async"/>
</Logger>
【问题讨论】: