logging - log4cplus:DailyRollingFileAppender 配置/MaxBackupIndex 不工作

标签 logging log4cplus dcmtk

将 log4cplus 配置文件用于运行 dcmtk(DICOM 工具包)操作的 bash 脚本。日志记录有效,并在脚本运行时每分钟创建一个新日志(配置文件中的“每分钟”)。 “分钟”用于测试目的,一旦我知道它按预期工作,它就会变成每天。 (我不想等几天看看是否会轮换和删除)

问题是 MaxBackupIndex 设置为 5。我在日志目录中有 12 个日志文件。在阅读 API 文档时……

“此属性限制每个日志记录周期保留多少备份文件;例如,保留多少 log.2009-11-07.1、log.2009-11-07.2 等文件。”

如果我没看错的话,只要有五个或更少的“dcmtk.log.2014-04-04-09-41”文件,它们就不会被删除......

当然少于 5 个,因为我已将其配置为每分钟只创建一个,无论大小如何。

我认为“MaxBackupIndex = 5”意味着最多有 5 个日志文件周期,而不是在“计划”指定的周期内最多有 5 个日志文件。最后,我希望能够将 MaxBackupIndex 的数量设置为 x,并且只有 x 个文件......。

任何帮助理解这一点或让轮换实际上有最多 5 个日志的帮助将不胜感激。

这是我的配置文件:

log4cplus.rootLogger = INFO, logfile
# log debug messages to a log file (with automatic rotation) 
log4cplus.appender.logfile = log4cplus::DailyRollingFileAppender
log4cplus.appender.logfile.File = /securerad/logs/dcmtk.log
log4cplus.appender.logfile.Append = true
log4cplus.appender.logfile.ImmediateFlush = true
log4cplus.appender.logfile.Schedule = minutely
log4cplus.appender.logfile.MaxBackupIndex = 5

谢谢--Rich

最佳答案

"This property limits how many backup files are kept per single logging period; e.g. how many log.2009-11-07.1, log.2009-11-07.2 etc. files are kept."

这就是它一直以来的方式。这是历史行为。我建议只使用 RollingFileAppender

关于logging - log4cplus:DailyRollingFileAppender 配置/MaxBackupIndex 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22865522/

相关文章:

linux -/usr/bin/ld : cannot find -ldcmimage

java - Logger.getLogger(class_name.class.getName()) 导致 NullPointerException

sql-server - 如何登录T-SQL

c++ - log4cplus: ERROR 在默认上下文被销毁后重新初始化默认上下文

c++ - 访问冲突读取位置-未终止的字符串(不可读的内存)

c++ - Visual Studio : MSB3073 error exited with code 1

ios - 在文本中显示从文件路径查看 .log 文件

linux - 如何使 bash 脚本从关键字生成日志文件

c++ - 帮助配置log4cplus配置文件(properties文件)