gpt4 book ai didi

java - 指定时间后 Log4j2 自动翻转

转载 作者:行者123 更新时间:2023-11-30 08:14:08 25 4
gpt4 key购买 nike

我正在使用 RollingFile appender。无论记录事件如何,我都希望每 20 分钟滚动一次日志文件。例如,在一个小时内我应该有 3 个日志文件,即使在那一小时内可能没有任何日志记录。这可能使用 Log4j2 吗?如果是,请提供所需的配置(在 log4j2.xml 中)。下面的配置似乎不起作用:

       <RollingFile name="RECHARGE_NMCD" fileName="D:/rc_nmcd/rc_nmcd.log" append="true" bufferedIO="false" filePattern="D:/rc_nmcd/rc_nmcd_%d{yyyy-MM-dd-HH-mm}.process">
<PatternLayout>
<Pattern>%m%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="20"/>
</Policies>
<DefaultRolloverStrategy max="20" />
</RollingFile>

最佳答案

将第二个单元的 filePattern 更改为 %d{yyyy-MM-dd_HH-mm-ss}

%d{yyyy-MM-dd_HH-mm}为分钟单位

%d{yyyy-MM-dd_HH}为小时单位

%d{yyyy-MM-dd}为日单位

log4j2.xml:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" >
<Properties>
<Property name="LOG_PATTERN_7">%d{yyyy/MM/dd HH:mm:ss.SSS} [%-6p] %c.%M(%F:%L) – %m%n</Property>
</Properties>

<Appenders>
<RollingFile name="RollingFile" fileName="logs/app.log"
filePattern="logs/$${date:yyyy-MM-dd}/${env:APP_NAME:-app}-%d{yyyy-MM-dd_HH-mm}_%i.log.zip">
<PatternLayout pattern="${LOG_PATTERN_7}" />
<Policies>
<!-- filePattern %d{yyyy-MM-dd_HH-mm-ss}: interval = 20 second -->
<!-- filePattern %d{yyyy-MM-dd_HH-mm}: interval = 20 minutes -->
<!-- filePattern %d{yyyy-MM-dd_HH}: interval = 20 hours -->
<TimeBasedTriggeringPolicy interval="20" modulate="true"/>
</Policies>
<DefaultRolloverStrategy max="1000" />
</RollingFile>

<Console name="Console" target="SYSTEM_OUT" follow="true">
<PatternLayout pattern="${LOG_PATTERN_7}" />
</Console>
</Appenders>

<Loggers>
<Root level="all" includeLocation="true">
<AppenderRef ref="Console" />
<AppenderRef ref="RollingFile" />
</Root>
</Loggers>

</Configuration>

关于java - 指定时间后 Log4j2 自动翻转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29672459/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com