tomcat日志管理
容器的日志自动覆盖
应用的日志有log4j设置的保留天数,长期运行硬盘不会爆满,但对于tomcat自身的日志如果不管理起来,也会出现硬盘爆满,应用无法运行
主要的配置文件:tomcat的conf下的logging.properties
1.
catalina.log路径、保留最大天数
1catalina.org.apache.juli.AsyncFileHandler.level = FINE
1catalina.org.apache.juli.AsyncFileHandler.directory = /u01/app/applogs
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
1catalina.org.apache.juli.AsyncFileHandler.maxDays = 180
1catalina.org.apache.juli.AsyncFileHandler.encoding = UTF-8
2.
localhost.log路径、保留最大天数
2localhost.org.apache.juli.AsyncFileHandler.level = FINE
2localhost.org.apache.juli.AsyncFileHandler.directory = /u01/app/applogs
2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost.
2localhost.org.apache.juli.AsyncFileHandler.maxDays = 180
2localhost.org.apache.juli.AsyncFileHandler.encoding = UTF-8
3.
manager.log路径、保留最大天数
3manager.org.apache.juli.AsyncFileHandler.level = FINE
3manager.org.apache.juli.AsyncFileHandler.directory = /u01/app/applogs
3manager.org.apache.juli.AsyncFileHandler.prefix = manager.
3manager.org.apache.juli.AsyncFileHandler.maxDays = 180
3manager.org.apache.juli.AsyncFileHandler.encoding = UTF-8
4.
host-manager.log路径、保留最大天数
4host-manager.org.apache.juli.AsyncFileHandler.level = FINE
4host-manager.org.apache.juli.AsyncFileHandler.directory = /u01/app/applogs
4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager.
4host-manager.org.apache.juli.AsyncFileHandler.maxDays = 180
4host-manager.org.apache.juli.AsyncFileHandler.encoding = UTF-8
catalina.out日志的配置,默认tomcat不提供最大天数配置的没要日志分割
bin下面的catalina.sh中 默认配置了该日志的路径
CATALINA_OUT=“$CATALINA_BASE”/logs/catalina.out
可以按需修改为(可能服务器上有多个tomcat,这里加了后缀app1) CATALINA_OUT=/u01/app/applogs/catalina.out.app1
catalina.out日志分割
在不另外安装日志分割工具的情况下,使用linux自带的
logrotate
来分割日志,root用户每晚23点59分执行分割,和其它日志保持一致,保存180天
root超级用户的crontab -e 编辑root定时任务配置
59 23 * * * /usr/sbin/logrotate -f /u01/app/apache-tomcat-9.0.71_app1/bin/catalina.out.app1.logrotate.conf
catalina.out.app1.logrotate.conf 这个配置文件在tomcat里,而整个tomcat是普通用户applprod来启动的,所以内容中有su applprod,具体内容如下
#!/bin/sh
su applprod
/u01/app/applogs/catalina.out.app1
{
daily
rotate 180
create
dateext
dateformat .%Y%m%d
missingok
copytruncate
nocompress
sharedscripts
}
这些配置的含义,网上有,这里不再赘述,主要设置180天的保留时间
access日志配置在conf/server.xml中
默认是没用最大天数的,注意加上。文件名、路径等见下文
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="/u01/app/applogs"
prefix="localhost_access_log_app1" suffix=".txt" maxDays="180"
pattern="%h %l %u %t "%r" %s %b" />