Unix 时间无法与 log4j 一起执行文件翻转

问题描述 投票:0回答:1

我正在将 %d{UNIX} 与 apache log4j 一起使用,但它不起作用 gradle 文件:

implementation group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.24.1'
implementation group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.24.1'

log4j2.xml

<RollingFile name="ROLLING" fileName="logs/app.log" filePattern="logs/app.**%d{UNIX}**.log.gz" ignoreExceptions="false">
    <PatternLayout>
        <Pattern>%m%n</Pattern>
    </PatternLayout>
    <Policies>
        <TimeBasedTriggeringPolicy interval="5" modulate="true"/>
        <SizeBasedTriggeringPolicy size="20 KB"/>
    </Policies>
    <DefaultRolloverStrategy max="10"/>
</RollingFile>

错误:

ERROR Unable to invoke factory method in class org.apache.logging.log4j.core.appender.RollingFileAppender for element RollingFile: java.lang.IllegalStateException: No factory method found for class org.apache.logging.log4j.core.appender.RollingFileAppender java.lang.IllegalStateException: No factory method found for class org.apache.logging.log4j.core.appender.RollingFileAppender
log4j log4j2
1个回答
0
投票

TimeBasedTriggeringPolicy
根据
%d{...}
模式确定翻转间隔(请参阅文档)。例如,如果您的模式是
%d{dd-HH-mm}
,那么翻转间隔将为分钟。

但是,

支持 Log4j 特定的 UNIX 说明符。如果支持的话,它可能会使用以秒为单位的滚动间隔。您是否尝试每 5 秒轮换一次文件?

© www.soinside.com 2019 - 2024. All rights reserved.