tomcat日志研究
tomcat服务器的日志:
catalina.2017-08-03.log,服务器启动日志
host-manager.2017-08-03.log,虚拟主机管理日志
localhost.2017-08-03.log,
manager.2017-08-03.log,
补充:
localhost_access_log.2017-08-03.txt,http访问日志,配置在server.xml中Host元素里配置,详情请看server.xml
tomcat服务器中webapp应用日志:
此日志,由application自行决定。第三方日志框架,或java日志框架。tomcat服务器对此不作要求。例如上图中的 sales-web.2017-08-03_11.log 以及 ACCESS_LOG_2017-08-03_08.log
tomcat服务器的catalina.out日志:
此日志在catalina.sh脚本中设置。属于操作系统的标准输出流、错误输出流中的内容,由此段shell决定
开发时,可能由于各种原因没注意,将application的日志直接输出到控制台,导致catalina.out文件越来越大,需要分割
1. 完美分割方法,cronolog
原理:此方法,最终是拦截标注输出流、错误输出流产生的,按表达式%Y-%m-%d创建接收文件。经笔者验证是可行的,此方法可将tomcat日志与应用程序日志统一处理,只需要将应用程序日志定为到标准输出
安装cronolog
修改catalina.sh文件
将if [ -z "$CATALINA_OUT" ] ; then
CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out
fi
修改为
if [ -z "$CATALINA_OUT" ] ; then
CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out.%Y-%m-%d
fi
将touch "$CATALINA_OUT"
改为#touch "$CATALINA_OUT"
将org.apache.catalina.startup.Bootstrap "$@" start \>> "$CATALINA_OUT" 2>&1 &
修改为org.apache.catalina.startup.Bootstrap "$@" start 2>&1 \| /usr/local/sbin/cronolog "$CATALINA_OUT" >> /dev/null &
完成之后重起Tomcat就可以了。
隔天看logs文件中是否有catalina.out.2015-09-13样式的日志。
2. log4j(logback)分割
原理:根据各个不同版本的tomcat选择支撑jar包,通过把tomcat的默认日志框架,改为log4j(logback)框架,实际上,只能重定向tomcat的日志。应用程序日志,标准输出,错误输出拦截不到具体的可以看看tomcat官网的logging这个document
具体操作,请百度
技术新手,有错误请指出