Log4j 2 保留 30 个归档日志文件

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

我想配置 log4j2.properties 文件,让我的 swapi.log 条目删除所有以前写入的日志,例如,如果我们要删除最多 30 个条目的日志条目,一旦达到 30 个,它就会自动删除。因为我们不占用服务器内存。

所以,到目前为止,我尝试了如下所示的方法,它在控制台中工作正常并附加在日志文件中。但我很难弄清楚如何删除所有以前的日志条目。任何帮助将不胜感激。

name=PropertiesConfig
appenders = console, file

appender.console.type = Console
appender.console.name = STDOUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

appender.file.type = File
appender.file.name = LOGFILE
appender.file.fileName=C:\\SWAPILogs\\swapi.log
appender.file.layout.type=PatternLayout
appender.file.layout.pattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

loggers=file
logger.file.name=com.gds.service
logger.file.level = debug
logger.file.appenderRefs = file
logger.file.appenderRef.file.ref = LOGFILE

rootLogger.level = debug
rootLogger.appenderRefs = STDOUT
rootLogger.appenderRef.stdout.ref = STDOUT
java maven log4j log4j2
1个回答
2
投票

正如 Nitesh 在评论中所说的那样,要轮换日志文件,您需要使用 RollingFileAppender

。您还需要:

您的 XML 配置将如下所示:

<RollingFile name="LOGFILE" fileName="C:\SWAPILogs\swapi.log" filePattern="C:\SWAPILogs\swapi-%i.log"> <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" /> <SizeBasedTriggeringPolicy size="10 MB" /> <DefaultRolloverStrategy fileIndex="min" max="30" /> </RollingFile>
您使用的属性配置格式要详细得多,但可以轻松地从 XML 格式导出:某个组件的所有属性共享相同的前缀,并使用 

<component prefix>.<property name>

 指定。所有子组件都使用前缀 
<parent component's prefix>.<component id>
,其中 
<component id>
 是任意选择的标识符。每个组件必须有一个属性 
<component prefix>.type
 反映 XML 配置中的标签名称。

上面的配置可以翻译为:

appender.file.type = RollingFile appender.file.name = LOGFILE appender.file.fileName=C:\\SWAPILogs\\swapi.log appender.file.filePattern=C:\\SWAPILogs\\swapi-%i.log appender.file.layout.type=PatternLayout appender.file.layout.pattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n appender.file.policy.type=SizeBasedTriggeringPolicy appender.file.policy.size=10 MB appender.file.strategy.type=DefaultRolloverStrategy appender.file.strategy.fileIndex=min appender.file.strategy.max=30
    
© www.soinside.com 2019 - 2024. All rights reserved.