问题背景
将业务系统从windows迁至Linux一段时间之后偶然发现Tomcat下catalina.out文件过大,达到20G,对系统稳定性造成影响,故希望抑制其增长问题。
问题解决方案
1.修改tomcat日志输出级别
http://blog.csdn.net/weixin_36586564/article/details/78550110
通过修改Tomcat文件夹下conf/logging.properties日志配置文件来屏蔽部分日志信息
将level级别设置成WARNING就可以大量减少日志的输出,当然也可以设置成OFF,直接禁用掉。
1catalina.org.apache.juli.FileHandler.level = WARNING
1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.FileHandler.prefix = catalina.
将level级别设置成WARNING就可以大量减少日志的输出,当然也可以设置成OFF,直接禁用掉。
日志的级别有:
SEVERE (highest value) > WARNING > INFO > CONFIG > FINE > FINER > FINEST (lowest value)
2.修改系统日志输出
减少项目中日志的输出,System.out、System.err和e.printStackTrace();尽量不要用。
log4j配置,控制log4j日志输出
3.禁用Tomcat日志
- 禁用catalina.out日志
通过修改catalina.sh配置可以控制tomcat不生成该文件
只要将
if [ -z "$CATALINA_OUT" ] ; then
CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out
修改为
if [ -z "$CATALINA_OUT" ] ; then
CATALINA_OUT=/dev/null
- 禁用localhost_access_log日志
打开conf/server.xml文件注释掉
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" />
这行代码,这样就不会生成localhost_access_log这个文件
- 禁用host-manager.localhost. catalina.天manager.天日志文件
打开conf/logging.properties文件
1catalina.org.apache一类的全部注释掉即可
4.日志切割
4.1 cronolog方法
4.2 logrotate命令
https://www.iyunv.com/forum.php?mod=viewthread&tid=404484&highlight=tomcat%2B
5.Linux脚本备份删除
#!/bin/sh
y=`date "+%Y"`
m=`date "+%m"`
d=`date "+%d"`
cd /PATH /tomcat/logs
cp catalina.out catalina.out.$y$m$d
echo > catalina.out
exit
注意linux系统的cron服务是否启动,是否正常工作,还有脚本的存放路径