【问题标题】:Centos logrotate not rotating logs dailyCentos logrotate 不是每天旋转日志
【发布时间】:2019-12-12 17:31:24
【问题描述】:

我有一个问题,我在 Centos7 中为 catalina.out 配置了每日 logrotation 但它没有旋转,如果强制运行 logrotate 它会旋转 catalina 但不是每天自动旋转。

logrotate.d/tomcat 配置文件:

/usr/local/tomcat7/logs/catalina.out
{
    daily
    rotate 30
    missingok
    compress
    copytruncate
}

logrotate.conf:

    # see "man logrotate" for details
# rotate log files daily
daily

# keep 4 weeks worth of backlogs
rotate 4

# create new (empty) log files after rotating old ones
create

# use date as a suffix of the rotated file
dateext

# uncomment this if you want your log files compressed
#compress

# RPM packages drop log rotation information into this directory
include /etc/logrotate.d

# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp {
    monthly
    create 0664 root utmp
        minsize 1M
    rotate 1
}

/var/log/btmp {
    missingok
    monthly
    create 0600 root utmp
    rotate 1
}


# system-specific logs may be also be configured here.

logrotate 状态/调试:

    rotating pattern: /usr/local/tomcat7/logs/catalina.out
 after 1 days (30 rotations)
empty log files are rotated, old logs are removed
considering log /usr/local/tomcat7/logs/catalina.out
  log does not need rotating (log has been already rotated)

"/usr/local/tomcat7/logs/catalina.out" 2019-8-5-9:25:18

【问题讨论】:

  • @user3788685 所以我不需要 logrotate 来旋转 catalina ,或者这对我有什么帮助?谢谢

标签: centos7 logrotate


【解决方案1】:

在默认状态下tomcat 使用log4j

您应该在/etc/tomcat/log4j.properties 有一个文件,其中包含日志管理的配置。

默认配置是(取自测试框):

log4j.rootLogger=debug, R 
log4j.appender.R=org.apache.log4j.RollingFileAppender 
log4j.appender.R.File=${catalina.home}/logs/tomcat.log 
log4j.appender.R.MaxFileSize=10MB 
log4j.appender.R.MaxBackupIndex=10 
log4j.appender.R.layout=org.apache.log4j.PatternLayout 
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n 
log4j.logger.org.apache.catalina=DEBUG, R
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost]=DEBUG, R
log4j.logger.org.apache.catalina.core=DEBUG, R
log4j.logger.org.apache.catalina.session=DEBUG, R

基于该配置,当日志大小增加到 10MB 时,日志将自动轮换,并且最多保留 10 个旧日志。

您可以根据需要更改这些设置,并且有几个很好的指南 herehere 解释了所有选项,并展示了如何更改为可能对您的需求更有用的滚动附加程序。

log4j 还负责轮换,但如果您正在执行类似tail -f cat.out 的操作并且日志轮换,您将需要重新跟踪文件以继续观看它,否则它似乎会在中途停止(很像其他日志可以)

请记住删除您尝试通过logrotate 应用的任何配置,这样以后就不会出错了!

要进行每日轮换,您需要使用这些设置;

DailyRollingFileAppender

DailyRollingFileAppender 根据时间频率轮换日志文件 允许定制到分钟。允许的日期模式作为 Appender如下:

yyyy-MM Roll over to new log file beginning on first day of every month
yyyy-ww Roll over to new log file beginning on first day of every week
yyyy-MM-dd Roll over daily
yyyy-MM-dd-a Roll over on midday and midnight
yyyy-MM-dd-HH Roll over every hour
yyyy-MM-dd-HH-mm Roll over every minute

这将给出一个配置:

log4j.rootLogger=INFO, fileLogger
log4j.appender.fileLogger.layout=org.apache.log4j.PatternLayout
log4j.appender.fileLogger.layout.ConversionPattern=%d [%t] %-5p (%F:%L) - %m%n
log4j.appender.fileLogger.File=example.log
log4j.appender.fileLogger=org.apache.log4j.DailyRollingFileAppender
log4j.appender.fileLogger.datePattern='.'yyyy-MM-dd-HH-mm

【讨论】:

  • 看来我的tomcat没有默认安装log4j所以我需要下载它然后尝试设置轮换
  • 你的tomcat路径中有log4j.properties文件吗?我的测试和产品框来自 rpm - 我会看看今晚是否可以下载 tarball,看看里面有什么。
  • 看看this - 看起来默认的压缩包使用了不同的记录器。如果您希望切换到 log4j,请参阅名为 Using java.util.logging (default) 的部分和下面的部分。让我知道你的情况,我会为你更新我的答案。
猜你喜欢
  • 2018-10-12
  • 1970-01-01
  • 2016-09-08
  • 2013-03-17
  • 2018-03-01
  • 2019-06-04
  • 2015-05-21
  • 2021-01-22
  • 2019-05-12
相关资源
最近更新 更多