log4j2不会滚动未使用log4j编写的应用程序日志
我的log4j2.xml不会删除旧日志。 我的应用程序将日志写入{sys:LOG_PATH}/onixs/fix/而不使用log4j(sys:LOG_PATH是一个环境变量)log4j2不会滚动未使用log4j编写的应用程序日志,log4j,log4j2,Log4j,Log4j2,我的log4j2.xml不会删除旧日志。 我的应用程序将日志写入{sys:LOG_PATH}/onixs/fix/而不使用log4j(sys:LOG_PATH是一个环境变量) %d{HH:mm:ss:SSS}|%-5.5级|%-20.20线程|%-30.30记录器{30}|%msg%n 我希望我的log4j每天在${sys:LOG_PATH}/onixs/fix/中滚动日志(IfLastModified age=“1d”)。但这并没有发生。你能帮我理解为什么吗?你的文件模式说你希望日志每秒滚
%d{HH:mm:ss:SSS}|%-5.5级|%-20.20线程|%-30.30记录器{30}|%msg%n
我希望我的log4j每天在${sys:LOG_PATH}/onixs/fix/中滚动日志(IfLastModified age=“1d”)。但这并没有发生。你能帮我理解为什么吗?你的文件模式说你希望日志每秒滚动一次,但是你的策略表明你只想在应用程序启动时滚动。ifLastModified age=“1d”表示您只希望将前一天的文件保留在存档文件夹中。它与滚动发生的频率无关 如果希望在应用程序运行时滚动文件,则需要一个触发策略。SizeBasedTriggeringPolicy、TimeBasedTriggeringPolicy或CronBasedTriggeringPolicy中的一个可以实现这一点 我建议您再次查看手册中的配置和RollingFileAppender部分
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout
pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
<RollingFile name="onixs"
fileName="${sys:LOG_PATH}/onixs/engine/engine_log.txt"
filePattern="${sys:LOG_PATH}/onixs/archive/engine/engine_log.%d{yyyy-MM-dd-HH-mm-ss}.txt"
append="true"
immediateFlush="false">
<PatternLayout>
<Pattern>%d{HH:mm:ss:SSS}|%-5.5level|%-20.20thread|%-30.30logger{30}|%msg%n
</Pattern>
</PatternLayout>
<Policies>
<OnStartupTriggeringPolicy/>
</Policies>
<DefaultRolloverStrategy fileIndex="nomax">
<Delete basePath="${sys:LOG_PATH}/onixs/archive/">
<IfFileName glob="engine_log.*.txt"/>
<IfLastModified age="1d"/>
</Delete>
<Delete basePath="${sys:LOG_PATH}/onixs/fix/">
<IfAny>
<IfFileName glob="*.R*.summary"/>
<IfFileName glob="*.state"/>
</IfAny>
<IfLastModified age="1d"/>
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
</Appenders>
<Loggers>
<logger name="biz.onixs" level="info" additivity="false">
<AppenderRef ref="onixs"/>
</logger>
<Root level="debug">
<AppenderRef ref="Console"/>
</Root>
</Loggers>