翻了下收藏夹,顺手整理到这里来。

catalina.out文件会越来越大,对系统的稳定造成了一定的影响。conf/logging.properties

一般在部署Tomcat后,运行久了,catalina.out文件会越来越大,对系统的稳定造成了一定的影响。

可通过修改conf/logging.properties日志配置文件来屏蔽掉这部分的日志信息。


​1​

​catalina.org.apache.juli.FileHandler.level = WARNING​


​2​

​catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs​


​3​

​catalina.org.apache.juli.FileHandler.prefix = catalina.​


将level级别设置成WARNING就可以大量减少日志的输出,当然也可以设置成OFF,直接禁用掉。

一般日志的级别有:

SEVERE (highest value) > WARNING > INFO > CONFIG > FINE > FINER > FINEST (lowest value)

来自:

http://rwl6813021.iteye.com/blog/752416

Linux下的tomcat产生的日志文件不象windows下的按时间时间和大小来处理,

尽管也生成了日志文件catalina.2009-0x-0x.log类型的文件,但是其中的catalina.out文件依然增大;它为啥在增大,为啥在增大,原因我就不探究了。

Tomcat的官方文档,由于是外文,偶还没有看明白di;

http://tomcat.apache.org/tomcat-6.0-doc/logging.html

据说是修改某些配置可以实现,希望高人指点,给个官方的解决方案;

老是增大也不是办法,还是想其他办法搞定它为好:

方法1—分割流

使用cronolog工具切分Tomcat的catalina.out日志文件

cronolog一个对日志切分的小工具,其主页在http://cronolog.org/,我们也可以用它来切分Apache的日志。

具体的方法,您可以去google之,这个方法占网络搜索结果的主流;

方法2—脚本流

事情终究不过是个大文件处理的问题,强大的bash来搞定;

使用cron每天来备份当前的catalina.out,然后清空他的内容;

参考脚本如下:


​1​

​#!/bin/sh​


​2​

​y=`​​​​date​​​​"+%Y"​​​​`​


​3​

​m=`​​​​date​​​​"+%m"​​​​`​


​4​

​d=`​​​​date​​​​"+%d"​​​​`​


​5​

​cd​​​​/PATH /tomcat/logs​


​6​

​cp​​​​catalina.out catalina.out.$y$m$d​


​7​

​echo​​​​> catalina.out​


​8​

​exit​


注意linux系统的cron服务是否启动,是否正常工作,还有脚本的存放路径(原因暂保密)

方法3—猥琐流

打开bin目录下的catalina.sh文件,终究不过是个bash文件,

查找一下,catalina.out总共出现三次;


​01​

​touch​​​​"$CATALINA_BASE"​​​​/logs/catalina.out​


​02​

​if​​​​[ ​​​​"$1"​​​​= ​​​​"-security"​​​​] ; ​​​​then​


​03​

​echo​​​​"Using Security Manager"​


​04​

​shift​


​05​

​"$_RUNJAVA"​​​​$JAVA_OPTS ​​​​"$LOGGING_CONFIG"​​​​$CATALINA_OPTS \​


​06​

​-Djava.endorsed.​​​​dirs​​​​=​​​​"$JAVA_ENDORSED_DIRS"​​​​-classpath ​​​​"$CLASSPATH"​​​​\​


​07​

​-Djava.security.manager \​


​08​

​-​


​09​

​?-Djava.security.policy==​​​​"$CATALINA_BASE"​​​​/conf/catalina.policy \​


​10​

​-Dcatalina.base=​​​​"$CATALINA_BASE"​​​​\​


​11​

​-Dcatalina.home=​​​​"$CATALINA_HOME"​​​​\​


​12​

​-Djava.io.tmpdir=​​​​"$CATALINA_TMPDIR"​​​​\​


​13​

​org.apache.catalina.startup.Bootstrap ​​​​"$@"​​​​start \​


​14​

​>> ​​​​"$CATALINA_BASE"​​​​/logs/catalina.out 2>&1 &​


​15​

​if​​​​[ ! -z ​​​​"$CATALINA_PID"​​​​]; ​​​​then​


​16​

​echo​​​​$! > $CATALINA_PID​


​17​

​fi​


​18​

​else​


​19​

​"$_RUNJAVA"​​​​$JAVA_OPTS ​​​​"$LOGGING_CONFIG"​​​​$CATALINA_OPTS \​


​20​

​-Djava.endorsed.​​​​dirs​​​​=​​​​"$JAVA_ENDORSED_DIRS"​​​​-classpath ​​​​"$CLASSPATH"​​​​\​


​21​

​-Dcatalina.base=​​​​"$CATALINA_BASE"​​​​\​


​22​

​-Dcatalina.home=​​​​"$CATALINA_HOME"​​​​\​


​23​

​-Djava.io.tmpdir=​​​​"$CATALINA_TMPDIR"​​​​\​


​24​

​org.apache.catalina.startup.Bootstrap ​​​​"$@"​​​​start \​


​25​

​>> ​​​​"$CATALINA_BASE"​​​​/logs/catalina.out 2>&1 &​


个人觉得也就是这里是写catalina.out文件的;让他写到一个其他的空设备如何?

修改前注意原文件的catalina.sh的备份哟~!!

修改以上代码中的

>> “$CATALINA_BASE”/logs/catalina.out 2>&1 &

>> /dev/null 2>&1 &

保存,然后启动tomcat,目前这个 catalina.out一直是空的了。

这个方法是偶自己想到的,个人认为比较勇敢,目前还没有在生产环境测试过。虚拟机测试是通过的。

方法4—人流

这个方法其实就是linux系统管理员手工去删除,人工操作,简称“人流”;

删除之前最好停止tomcat的服务;