叙述
其他日志如 localhost.{yyyy-MM-dd}.log
、localhost-access.{yyyy-MM-dd}.log
的 localhost
是context的名称,往往一个应用程序是一个名称。
解决方案
按上图所示,随着运行时间变久 catalina.out 只会越来越大,但控制台输出的日志也有用,比如某些开发人员喜欢使用e.printStackTrace()
、System.out.println()
、System.err.println()
都会打印到 catalina.out 中, 这些日志也有用!所以就需要日志分割做备份。
最简单的方法是使用 Linux 自带的 logrotate(日志轮转)功能分割 catalina.out。
以下是logrotate运行的关键点:
/usr/bin/logrotate
程序所在位置;/etc/cron.daily/logrotate
默认让Cron每天执行logrotate一次;/etc/logrotate.conf
全局配置文件;/etc/logrotate.d
应用自个的配置文件存放目录,覆盖全局配置;
以 catalina.out 路径为 /opt/tomcat/logs/catalina.out
举例:
#进入 /etc/logrotate.d,此目录是 logrotate.d 子系统的配置目录,不推荐修改主配置文件。
cd /etc/logrotate.d
cat > tomcat<<EOF
/opt/tomcat/logs/catalina.out{
copytruncate
daily
rotate 15
compress
missingok
notifempty
size 200M
dateext
}
EOF
以上配置说明:
- /opt/tomcat/logs/catalina.out #catalina.out存放地址
- copytruncate #拷贝原日志文件,并将其清空
- daily #每日切割
- rotate 15 #最多保留15个文件
- compress #压缩分割后的文件
- missingok #允许catalina.out文件不存在,待文件出现再开始切割
- notifempty #当日志文件为空时,不进行轮转
- size 200M #当catalina.out文件大于200M时切割
- dateext # 日期扩展,将切割后的日志文件名添加日期
更多配置参数: