Tomcat 日志切割之cronolog
  ohUzWZB6ZDgi 2023年11月02日 60 0

不管是测试环境还是生产环境都需要对tomcat的日志进行切割,按天,按小时等等。


1 安装cronolog

1[root@app_51 ~]$ yum install -y cronolog
2[root@app_51 ~]$ which cronolog
3/usr/sbin/cronolog

 

2 修改tomcat的catalina.sh

1 [ghl@app_51 ~]$ cd /home/ghl/tomcat/apache-tomcat-8.5.37/bin/
2 [ghl@app_51 bin]$ cp catalina.sh catalina.sh.bak
3 #需要将第453-491的代码,直接替换成下面的
4 shift
5 #touch "$CATALINA_OUT"
6 if [ "$1" = "-security" ] ; then
7 if [ $have_tty -eq 1 ]; then
8 echo "Using Security Manager"
9 fi
10 shift
11 "$_RUNJAVA" "$LOGGING_CONFIG" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
12 -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
13 -Djava.security.manager \
14 -Djava.security.policy=="$CATALINA_BASE"/conf/catalina.policy \
15 -Dcatalina.base="$CATALINA_BASE" \
16 -Dcatalina.home="$CATALINA_HOME" \
17 -Djava.io.tmpdir="$CATALINA_TMPDIR" \
18 org.apache.catalina.startup.Bootstrap "$@" start 2>&1 | /usr/sbin/cronolog "$CATALINA_BASE"/logs/catalina.out.%Y-%m-%d.out >> /dev/null &
19
20 else
21 "$_RUNJAVA" "$LOGGING_CONFIG" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
22 -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
23 -Dcatalina.base="$CATALINA_BASE" \
24 -Dcatalina.home="$CATALINA_HOME" \
25 -Djava.io.tmpdir="$CATALINA_TMPDIR" \
26 org.apache.catalina.startup.Bootstrap "$@" start 2>&1 | /usr/sbin/cronolog "$CATALINA_BASE"/logs/catalina.out.%Y-%m-%d.out >> /dev/null &
27
28 fi

 

3 查看原来的catalina

Tomcat 日志切割之cronolog_tomcat

1 [ghl@app_51 bin]$ sed -n "453,491P" catalina.sh.bak
2 shift
3 if [ -z "$CATALINA_OUT_CMD" ] ; then
4 touch "$CATALINA_OUT"
5 catalina_out_command=">> \"$CATALINA_OUT\" 2>&1"
6 else
7 catalina_out_command="| $CATALINA_OUT_CMD"
8 fi
9 if [ ! -z "$CATALINA_PID" ]; then
10 catalina_pid_file="$CATALINA_PID"
11 else
12 catalina_pid_file=/dev/null
13 fi
14 if [ "$1" = "-security" ] ; then
15 if [ $have_tty -eq 1 ]; then
16 echo "Using Security Manager"
17 fi
18 shift
19 eval \{ $_NOHUP "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
20 -D$ENDORSED_PROP="\"$JAVA_ENDORSED_DIRS\"" \
21 -classpath "\"$CLASSPATH\"" \
22 -Djava.security.manager \
23 -Djava.security.policy=="\"$CATALINA_BASE/conf/catalina.policy\"" \
24 -Dcatalina.base="\"$CATALINA_BASE\"" \
25 -Dcatalina.home="\"$CATALINA_HOME\"" \
26 -Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
27 org.apache.catalina.startup.Bootstrap "$@" start \
28 2\>\&1 \& echo \$! \>\"$catalina_pid_file\" \; \} $catalina_out_command "&"
29
30 else
31 eval \{ $_NOHUP "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
32 -D$ENDORSED_PROP="\"$JAVA_ENDORSED_DIRS\"" \
33 -classpath "\"$CLASSPATH\"" \
34 -Dcatalina.base="\"$CATALINA_BASE\"" \
35 -Dcatalina.home="\"$CATALINA_HOME\"" \
36 -Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
37 org.apache.catalina.startup.Bootstrap "$@" start \
38 2\>\&1 \& echo \$! \>\"$catalina_pid_file\" \; \} $catalina_out_command "&"
39
40 fi
41

 

4 查看修改后的

Tomcat 日志切割之cronolog_sed_02

1 [ghl@app_51 bin]$ sed -n "453,491P" catalina.sh
2 shift
3 #touch "$CATALINA_OUT"
4 if [ "$1" = "-security" ] ; then
5 if [ $have_tty -eq 1 ]; then
6 echo "Using Security Manager"
7 fi
8 shift
9 "$_RUNJAVA" "$LOGGING_CONFIG" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
10 -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
11 -Djava.security.manager \
12 -Djava.security.policy=="$CATALINA_BASE"/conf/catalina.policy \
13 -Dcatalina.base="$CATALINA_BASE" \
14 -Dcatalina.home="$CATALINA_HOME" \
15 -Djava.io.tmpdir="$CATALINA_TMPDIR" \
16 org.apache.catalina.startup.Bootstrap "$@" start 2>&1 | /usr/sbin/cronolog "$CATALINA_BASE"/logs/catalina.out.%Y-%m-%d.out >> /dev/null &
17
18 else
19 "$_RUNJAVA" "$LOGGING_CONFIG" $LOGGING_MANAGER $JAVA_OPTS $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 2>&1 | /usr/sbin/cronolog "$CATALINA_BASE"/logs/catalina.out.%Y-%m-%d.out >> /dev/null &
25
26 fi
27
28 echo "Tomcat started."
29
30 elif [ "$1" = "stop" ] ; then
31
32 shift
33
34 SLEEP=5
35 if [ ! -z "$1" ]; then
36 echo $1 | grep "[^0-9]" >/dev/null 2>&1
37 if [ $? -gt 0 ]; then
38 SLEEP=$1
39 shift
40 fi
41[ghl@app_51 bin]$

 

5 启动tomcat后查看日志格式

1[ghl@app_51 bin]$ ./startup.sh 
2 Using CATALINA_BASE: /home/ghl/tomcat/apache-tomcat-8.5.37
3 Using CATALINA_HOME: /home/ghl/tomcat/apache-tomcat-8.5.37
4 Using CATALINA_TMPDIR: /home/ghl/tomcat/apache-tomcat-8.5.37/temp
5 Using JRE_HOME: /usr/local/jdk1.8.0_144/
6 Using CLASSPATH: /home/ghl/tomcat/apache-tomcat-8.5.37/bin/bootstrap.jar:/home/ghl/tomcat/apache-tomcat-8.5.37/bin/tomcat-juli.jar
7 Tomcat started.
8 [ghl@app_51 bin]$ netstat -tnlp|grep 8080|8009
9 Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
10 tcp6 0 0 :::8009 :::* LISTEN 5408/java
11 tcp6 0 0 :::8080 :::* LISTEN 5408/java
12[ghl@app_51 apache-tomcat-8.5.37]$ cd logs/
13[ghl@app_51 logs]$ ll
14总用量 36
15-rw-r----- 1 ghl ghl 11399 7月 7 01:06 catalina.2019-07-07.log
16-rw-r----- 1 ghl ghl 6102 7月 7 00:24 catalina.out
17-rw-r----- 1 ghl ghl 8409 7月 7 01:06 catalina.out.2019-07-07.out
18-rw-r----- 1 ghl ghl 0 7月 7 00:21 host-manager.2019-07-07.log
19-rw-r----- 1 ghl ghl 0 7月 7 00:21 localhost.2019-07-07.log
20-rw-r----- 1 ghl ghl 147 7月 7 00:21 localhost_access_log.2019-07-07.txt
21-rw-r----- 1 ghl ghl 0 7月 7 00:21 manager.2019-07-07.log


作者:HaydenGuo

每一个前十年都想不到后十年我会演变成何等模样,可知人生无常,没有什么规律,没有什么必然。

只要我还对新鲜的知识、品格的改进、情感的扩张、有胃口,这日子就是值得度过的。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  ehrZuhofWJiC   2024年04月26日   37   0   0 日志Java
  Fo7woytj0C0D   2023年12月23日   31   0   0 pythonsedidepythonidesed
ohUzWZB6ZDgi