如何正确轮换和归档 rundeck 日志

How to properly rotate and archive rundeck logs

我正在使用 2.6.4-1。由于 rundeck 日志不会存档或旋转它们自己,或者不会在安装时将 conf 放入 logrotate 中;旋转和存档它的最佳方式是什么..?

我可以手动将配置放到 logrotate 中,这样它就可以旋转和存档它,也许我可以使用 copytruncate,因为 Java 应用程序(例如 Rundeck)通常会忽略 UNIX 信号,例如 SIGHUP 和 SIGUSR1 但是什么停止我使用 logrotate 是,rundeck 试图通过附加日期戳来旋转日志并将其保留在那里而没有 archiving.This 使得 logrotate 无法按预期工作。由于日志的大小不断增长,rundeck 日志轮换、归档的任何替代方案。

或者帮助我了解如何避免 rundeck 尝试通过在日志名称中附加日期戳来轮换日志。就像 rundeck.access.log 变成 rundeck.access.log.2017-06-02 这使得 logrotate 无法对其进行归档。

提前致谢。 狮子座王子

如您所知,Rundeck 使用 log4f 作为其应用程序日志记录工具。所有日志记录都由 log4j 控制。如果您使用启动器,日志配置文件是 RD_BASE/log4j.propertiesRD_BASE/etc/log4j.properties

如果您查看 log4j.properties 文件。您会发现 /var/log/rundeck/ 目录下出现的所有文件的配置具有以下设置:

log4j.appender.cmd-logger=org.apache.log4j.DailyRollingFileAppender
log4j.appender.cmd-logger.file=/var/log/rundeck/command.log
log4j.appender.cmd-logger.datePattern='.'yyyy-MM-dd
log4j.appender.cmd-logger.append=true
log4j.appender.cmd-logger.layout=org.apache.log4j.PatternLayout
log4j.appender.cmd-logger.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c - %m%n

org.apache.log4j.DailyRollingFileAppender 使日志文件每天循环。

日志文件名的 dateParttern 为 '.'yyyy-MM-dd


log4j日志轮换和归档

TimeBasedRollingPolicy

您要找的设置是FileNamePattern

这是一个关于如何使用 log4j 进行日志轮换和归档的示例 How to make log files rotate per day and zip old rotated logs using log4j.properties