天天看点

Tomcat日志分析(一)

最近发现公司新上项目中Tomcat下catlina.out日益增大,短短几天已有54M.这样大日志看起来不方便,一次打开也花一分钟多,直接cat要滚掉好多屏,切割起来又麻烦.想办法用日期来分割日志,即每天新建一个日志文件.

  查阅了下资料:

  Cataline引擎的日志文件,文件名catalina.日期.log 

Tomcat下内部代码丢出的日志,文件名localhost.日期.log

(jsp页面内部错误的异常,org.apache.jasper.runtime.HttpJspBase.service类丢出的,

日志信息就在该文件!) 

Tomcat下默认manager应用日志,文件名manager.日期.log 
控制台输出的日志,Linux下默认重定向到catalina.out 
Access日志(Servlet.xml配置) 
应用程序通过log4j.properties:${catalina.base}/logs/probe.log重定向过来的日志 

  我最初的想法是用通过Log4j,想不通过在Class文件中手工调用infor(),warn()等方法来记录日志.假如应用程序发生异常,原本打印在控制台的异常信息会自动记录到日志.查理一天以后放弃了.查手册发现异常是在System.error里.日志是在System.out里.

 现在的需求变为使catalina.out按日志分割.这里需要借助一款工具cronolog

  使用SSH登录服务器,键入以下命令:

#  wget http://cronolog.org/download/cronolog-1.6.2.tar.gz

# tar zxvf cronolog-1.6.2.tar.gz

# cd cronolog-1.6.2

# ./configure

# make

# make install

然后修改 catalina.sh
org.apache.catalina.startup.Bootstrap “$@” start  /
>> “$CATALINA_BASE”/logs/catalina.out 2>&1 &
           
org.apache.catalina.startup.Bootstrap “$@” start 2>&1 /
| /usr/local/sbin/cronolog “$CATALINA_BASE”/logs/catalina.%Y-%m-%d.out >> /dev/null &
           
注释掉
touch “$CATALINA_BASE”/logs/catalina.out
           

这行.

然后重启服务器就可以了.