java - 防止Log4j创建超过5个日志文件

标签 java logging log4j2 properties-file

正如标题所说,我想用Log4j2创建不超过5个日志文件。请记住,我想使用 .properties 文件。这是我到目前为止所拥有的:

rootLogger.level=INFO
property.filename=/data/standalone/ldap_proxy_server/logs/ldap_server_proxy.log

appenders=rollingAppender

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

appender.rollingAppender.type=RollingFile
appender.rollingAppender.name=File
appender.rollingAppender.fileName=/data/standalone/ldap_proxy_server/logs/ldap_server_proxy.log
appender.rollingAppender.filePattern=/data/standalone/ldap_proxy_server/logs/ldap_server_proxy.log.%d{yyyy-MM-dd}
appender.rollingAppender.layout.type=PatternLayout
appender.rollingAppender.layout.pattern=%d{dd/MM/yyyy HH:mm:ss} %5p %c{20} > %m%n
appender.rollingAppender.policies.type=Policies
appender.rollingAppender.policies.time.type=TimeBasedTriggeringPolicy
appender.rollingAppender.policies.time.interval=1
appender.rollingAppender.policies.time.modulate=true
appender.rollingAppender.policies.size.type=SizeBasedTriggeringPolicy
appender.rollingAppender.policies.size.size=50MB
appender.rollingAppender.strategy.type=DefaultRolloverStrategy
appender.rollingAppender.strategy.max=5

rootLogger.appenderRefs=rollingAppender,console

rootLogger.appenderRef.console.ref=STDOUT
rootLogger.appenderRef.rollingAppender.ref=File

我认为这两行有魔力:

appender.rollingAppender.strategy.type=DefaultRolloverStrategy
appender.rollingAppender.strategy.max=5

但是它不起作用。我做错了什么?

最佳答案

如果没有,我认为您必须指定删除旧日志文件。轮转后文件数量超过 5 个。

尝试按照配置文件中的以下行更改滚动策略 -

appender.rollingAppender.strategy.type = DefaultRolloverStrategy
appender.rollingAppender.strategy.delete.type = Delete
appender.rollingAppender.strategy.delete.basePath = /data/standalone/ldap_proxy_server/logs/
appender.rollingAppender.strategy.delete.maxDepth = 1
appender.rollingAppender.strategy.delete.ifAccumulatedFileCount.type = IfAccumulatedFileCount 
appender.rollingAppender.strategy.delete.ifAccumulatedFileCount.exceeds = 5

您还可以指定删除超过 5 天的文件,但在这种情况下,当您也使用 SizeBasedTriggeringPolicy 时,可以存在 5 个或 5 个以上文件。

关于java - 防止Log4j创建超过5个日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47205219/

相关文章:

java - Spring Boot Controller 测试 - 断言静态 HTML 响应

Python - mysql - 记录生成警告的查询

java - 如何将 log4j.properties 文件转换为 log4j2.xml 或 log4j2.properties 文件

java - 在没有框架的情况下管理 DI 对象

Java帮助,数组中的最小值

java - slf4j 登录控制台而不是文件

docker - 如何在 docker 日志中记录 docker 健康检查状态?

java - 从SecurityContextHolder获取电子邮件地址 spring java MVC

log4j2 - 在 log4j 的阈值过滤器中接受与中性

java - 如何让Arduino和Java通过单字节进行通信