参考: https://www.cnblogs.com/kevinchou/p/5704451.html
实测版本: tomcat6 JDK6
资源:
tomcat-juli-adapters.jar 链接:https://pan.baidu.com/s/1O3cp2H7XBzXZAndXM93PRw 密码:rocx
cronolog-1.6.2.tar.gz 链接:https://pan.baidu.com/s/1jzk1SOoHVogqSeWZV7rFlA 密码:dykb
1. 下载安装软件------ cronolog-1.6.2.tar.gz
tar xvf cronolog-1.6.2.tar.gz
cd cronolog-1.6.2
./configure
make
make install
which cronolog #查看cronolog安装后所在目录(验证安装是否成功)正常情况下显示:/usr/local/sbin/cronolog
2. 修改 ${TOMCAT_HOME}/bin/ 下的 catalina.sh 配置信息
Tip:
catalina.%Y-%m-%d.out 每天一个文件
catalina.%Y-%m-%d-%H.out 每小时一个文件
catalina.%Y-%m-%d-%H-%M.out 每分钟一个文件
2.1. Tomcat7以前的版本
(1) 设置
CATALINA_HOME=/opt/2_tomcat # [可选项 若此处不配置,需在/etc/profile 里面设置]
CATALINA_BASE=/opt/2_tomcat # [可选项 若此处不配置,需在/etc/profile 里面设置]
# [可选项 生成gc日志]
JAVA_OPTS="-Xms1024m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=512m -Dcom.sun.management.jmxremote.authenticate=false -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Dsun.rmi.dgc.client.gcInterval=600000 -XX:+UseConcMarkSweepGC -XX:MaxTenuringThreshold=15 -XX:+CMSClassUnloadingEnabled -XX:CMSInitiatingOccupancyFraction=80 -verbose:gc -Xloggc:${TOMCAT_HOME}/logs/gc.log"
(2) 注释掉: touch "$CATALINA_BASE"/logs/catalina.out
(3-1) 将
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 &
(3-2) 若追加不替换,以下信息
org.apache.catalina.startup.Bootstrap "$@" start 2>&1 \
| /usr/local/sbin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out >> /dev/null &
需要将以下信息注释掉,并在以下信息之前追加,否则会报错
org.apache.catalina.startup.Bootstrap "$@" start \
>> "$CATALINA_BASE"/logs/catalina.out 2>&1 &
2.2. Tomcat7及以后的版本
(1) 设置
CATALINA_HOME=/opt/2_tomcat # [可选项 若此处不配置,需在/etc/profile 里面设置]
CATALINA_BASE=/opt/2_tomcat # [可选项 若此处不配置,需在/etc/profile 里面设置]
# [可选项 生成gc日志]
JAVA_OPTS="-Xms1024m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=512m -Dcom.sun.management.jmxremote.authenticate=false -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Dsun.rmi.dgc.client.gcInterval=600000 -XX:+UseConcMarkSweepGC -XX:MaxTenuringThreshold=15 -XX:+CMSClassUnloadingEnabled -XX:CMSInitiatingOccupancyFraction=80 -verbose:gc -Xloggc:${TOMCAT_HOME}/logs/gc.log"
(2) 将 CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out 改为 CATALINA_OUT="$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out
(3) 注释掉: touch "$CATALINA_OUT"
(4-1) 将
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 &
(4-2) 若追加不替换,以下信息
org.apache.catalina.startup.Bootstrap "$@" start 2>&1 \
| /usr/local/sbin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out >> /dev/null &
需要将以下信息注释掉,并在以下信息之前追加,否则会报错
org.apache.catalina.startup.Bootstrap "$@" start \
| /usr/local/sbin/cronolog "$CATALINA_OUT" >> /dev/null &
3. 修改 ${TOMCAT_HOME}/conf/ 下的配置文件
3.1. 修改 catalina.sh [可选项]
修改tomcat路径 <Context docBase="/opt/1_tomcat/webapps/mydemo" path="/mydemo" reloadable="true"/>
3.2. 修改 context.xml
增加swallowOutput="true" 的属性配置,只有这样才能完全的把tomcat的stdout给接管过来。
将<Context> 替换为<Context swallowOutput="true" >
3.3-1. 压缩文件------ logging.properties--- logging.properties_back.rar [可选项]
3.3-2. 移除文件------ logging.properties
4. jar包上传与替换
tomcat-juli-adapters.jar 上传到 ${TOMCAT_HOME}/lib/下
${TOMCAT_HOME}/bin/下的 tomcat-juli.jar 复制一份到 ${TOMCAT_HOME}/lib/下 [可选]
项目使用的 log4j-1.2.17.jar 复制一份到 ${TOMCAT_HOME}/lib/下 [可选]
5. 修改log4j 的相关配置文件
linux下的 conf.prop log4j.conf 日志路径
windows下的 conf.prop log4j.conf 日志路径
6. 完成之后重起Tomcat就可以看到logs文件中存在catalina.2018-11-21.out 样式的日志。