我在我的春季MCV应用程序中使用log4j,我需要每天拆分日志文件,但需要保留旧文件2天,之后需要存档文件。我怎么能做到这一点? 我的配置如下,
<Appenders>
<File name="INBOUND-ERROR" fileName="${log-path}/inbound-errors.log" append="false">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}.%M() :line%L - %m%n"/>
</File>
<File name="OUTBOUND-ERROR" fileName="${log-path}/outbound-errors.log" append="false">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}.%M() :line%L - %m%n"/>
</File>
<File name="ENCRYPTIONDECRYPTION-ERROR" fileName="${log-path}/encryptiondecryption-errors.log" append="false">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}.%M() :line%L - %m%n"/>
</File>
<Console name="STDOUT" target="SYSTEM_OUT">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}.%M() :line%L - %m%n"/>
</Console>
<File name="INBOUND-ADMIN" fileName="${log-path}/inbound-admin.log" append="false">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}.%M() :line%L - %m%n"/>
</File>
<File name="OUTBOUND-ADMIN" fileName="${log-path}/outbound-admin.log" append="false">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}.%M() :line%L - %m%n"/>
</File>
<RollingFile name="RollingFile-Inbound-Appender"
fileName="${log-path}/inbound.log"
filePattern="${archive}/inbound.log.%d{yyyy-MM-dd}.%i.log.gz">
<PatternLayout pattern="[%-5level] %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}.%M() :line%L - %m%n"/>
<Policies>
<TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="300 MB"/>
</Policies>
<DefaultRolloverStrategy max="300000"/>
</RollingFile>
<RollingFile name="RollingFile-Outbound-Appender"
fileName="${log-path}/outbound.log"
filePattern="${archive}/outbound.log.%d{yyyy-MM-dd}.%i.log.gz">
<PatternLayout pattern="[%-5level] %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}.%M() :line%L - %m%n"/>
<Policies>
<TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="300 MB"/>
</Policies>
<DefaultRolloverStrategy max="300000"/>
</RollingFile>
</Appenders>
答案 0 :(得分:0)
anwser对 log4j2 有效(这很令人困惑 - 你把log4j2的标记,但在你提到的log4j的问题中)。
TimeBasedTriggeringPolicy 的区间属性应该可以实现。它应用于日期模式中最具体的时间单位(请参阅manual)。所以,它应该是这样的:
<RollingFile name="RollingFile-Inbound-Appender"
fileName="${log-path}/inbound.log"
filePattern="${archive}/inbound.log.%d{yyyy-MM-dd}.%i.log.gz">
<PatternLayout pattern="[%-5level] %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}.%M() :line%L - %m%n"/>
<Policies>
<TimeBasedTriggeringPolicy interval=2/>
<SizeBasedTriggeringPolicy size="300 MB"/>
</Policies>
<DefaultRolloverStrategy max="300000"/>
</RollingFile>