Apache Tomcat/8.0.32 (Ubuntu)
我尝试修复在上运行的 webapp 中使用 log4j2 的日志轮换问题Ubuntu 16.04.4
(请参阅相关 stackoverflow 问题). Tomcat 运行于OracleJRE 1.8.0_181
.
我将完整的 Apache Tomcat 安装从 Tomcat 的实现java.utils.logging
(Tomcat JULI)切换到 log4j2:Log4j 应用服务器集成。
它运行正常,但我遇到了影响 webapp 的问题,现在也影响了 Tomcat。日志文件似乎在午夜被轮换并用 gzip 打包,但没有创建新的日志文件。日志文件写入/var/log/tomcat8/
。
我认为这是一个轮换日志文件的系统进程,而不是 Tomcat 错误。服务器使用systemd
,其中systemd-tmpfiles-clean.timer
已激活并rsyslog.service
启用并正在运行。
是否轮换日志文件或另一个系统进程是否轮换日志?如果是,我如何从进程的日志轮换中systemd-tmpfiles-clean.timer
排除目录?/var/log/tomcat8/
编辑:logrotate 配置文件
/etc/logrotate.conf
# use the syslog group by default, since this is the owning group
# of /var/log/syslog.
su root syslog
# keep 4 weeks worth of backlogs
rotate 4
# create new (empty) log files after rotating old ones
create
# uncomment this if you want your log files compressed
#compress
# packages drop log rotation information into this directory
include /etc/logrotate.d
# no packages own wtmp, or btmp -- we'll rotate them here
/var/log/wtmp {
missingok
monthly
create 0664 root utmp
rotate 1
}
/var/log/btmp {
missingok
monthly
create 0660 root utmp
rotate 1
}
/etc/logrotate.d/tomcat8
/var/log/tomcat8/catalina.out {
copytruncate
weekly
rotate 52
compress
missingok
create 640 tomcat8 adm
}
编辑:管理员重新配置了 logrotate(不幸的是没有解释他做了什么)并且这个问题消失了。