log4j2不会滚动未使用log4j编写的应用程序日志

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”)。但这并没有发生。你能帮我理解为什么吗?你的文件模式说你希望日志每秒滚

我的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”)。但这并没有发生。你能帮我理解为什么吗?

你的文件模式说你希望日志每秒滚动一次,但是你的策略表明你只想在应用程序启动时滚动。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>