【教程】Tomcat 的catalina.out 日志按照自定义日期格式进行切割

本文简单介绍在使用cronolog对tomcat的日志进行自定义日期格式的切割,方便日志的整理和遇到问题日志的排查!

安装cronolog

安装cronolog的方法网上有很多,这里也简单的介绍一下。

1.下载安装包

cronolog-1.6.2.tar.gz

2.安装cronolog

tar -zxvf cronolog-1.6.2.tar.gz
cd cronolog-1.6.2
./configre # --prefix=/opt/cronolog ,可以指定安装目录,默认在 /usr/local/sbin/cronolog
make
make install

3.验证cronolog

which cronolog

如果在安装时没有指定安装目录,则显示/usr/local/sbin/cronolog;表示成功;如果指定安装目录,则在安装目录下查看是否有sbin等目录生成,如果有目录生成,则表示安装成功;

4.cronolog 的语法介绍

cronolog使用方式

CRONOLOG一般是采取管道的方式来工作的,采用如下的形式:

loggenerator | cronolog log_file_pattern

其中,loggenerator为产生log的程序,而log_file_pattern是日志文件的路径,可以在其中加入CRONOLOG所支持的时间 相关的pattern字符,如/www/log/%y/%m/%d/access.log。其patter为%字符后跟一特殊字符;

CRONOLOG支持的特殊字符说明

转义符:

%    %字符
n    换行
t    水平制表符

时间域:

H    小时(00..23)
I    小时(01..12)
p    该locale下的AM或PM标识
M    分钟(00..59)
S    秒 (00..61, which allows for leap seconds) 
X    该locale下时间表示符(e.g.: _"15:12:47 "_) 
Z    时区。若时区不能确定,则无意义

日期域:

a    该locale下的工作日简名(e.g.: Sun..Sat)
A    该locale下的工作日全名(e.g.: Sunday ..  Satur-ay)
b    该locale下的月份简称(e.g.: Jan .. Dec)
B    该locale下的月份全称(e.g.:  January .. December)
c    该locale下的日期和时间(e.g.: "Sun Dec 15  14:12:47 GMT 1996")
d    当月中的天数 (01 .. 31)
j    当年中的天数 (001 .. 366)
m    月数 (01 .. 12)
U    当年中的星期数,以周日作为一周开始,其中第一周为首个含星期天的星期(00..53)
W    当年中的星期数,以星期一作为一周的开始,其中第一周为首个含星期天的星期(00..53)
w    工作日数(0 .. 6, 0表示星期天)
x    该locale下的日期表示(e.g. "13/04/97")
y    两位数的年份(00 .. 99)
Y    四位数的年份(1970 .. 2038)

配置tomcat的Catalina.sh

(1)注释掉(#)

touch "$CATALINA_OUT"
修改为 
#touch "$CATALINA_OUT"

(2)修改tomcat bin目录下的catalina.sh文件中的两处
 org.apache.catalina.startup.Bootstrap "$@" start \
      >> "$CATALINA_OUT" 2>&1 "&"
修改为
org.apache.catalina.startup.Bootstrap "$@" start 2>&1 | /opt/tools/cronolog/sbin/cronolog "$CATALINA_BASE"/logs/catalina.out.%Y-%m-%d.log >> /dev/null &

完成之后重起Tomcat就可以看到logs文件中存在对应格式的日志文件了!(catalina.out.2018-01-21.log)


我安装 cronolog的目录为 :

/opt/tools/cronolog/sbin/cronolog

最后的配置的代码:

#touch "$CATALINA_OUT"
  if [ "$1" = "-security" ] ; then
    if [ $have_tty -eq 1 ]; then
      echo "Using Security Manager"
    fi
    shift
    eval "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
      -Djava.endorsed.dirs="\"$JAVA_ENDORSED_DIRS\"" -classpath "\"$CLASSPATH\"" \
      -Djava.security.manager \
      -Djava.security.policy=="\"$CATALINA_BASE/conf/catalina.policy\"" \
      -Dcatalina.base="\"$CATALINA_BASE\"" \
      -Dcatalina.home="\"$CATALINA_HOME\"" \
      -Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
      org.apache.catalina.startup.Bootstrap "$@" start 2>&1 | /opt/tools/cronolog/sbin/cronolog "$CATALINA_BASE"/logs/catalina.out.%Y-%m-%d.log >> /dev/null &

  else
    eval "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
      -Djava.endorsed.dirs="\"$JAVA_ENDORSED_DIRS\"" -classpath "\"$CLASSPATH\"" \
      -Dcatalina.base="\"$CATALINA_BASE\"" \
      -Dcatalina.home="\"$CATALINA_HOME\"" \
      -Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
      org.apache.catalina.startup.Bootstrap "$@" start 2>&1 | /opt/tools/cronolog/sbin/cronolog "$CATALINA_BASE"/logs/catalina.out.%Y-%m-%d.log >> /dev/null &

  fi

最后配置图片,看的更清楚一点!
这里写图片描述

这里写图片描述

参考博文

cronolog分割Tomcat catalina.out日志


**如果您觉得这篇博文对你有帮助,请点个赞,谢谢!** **如果帅气(美丽)、睿智(聪颖),和我一样简单善良的你看到本篇博文中存在问题,请指出,我虚心接受你让我成长的批评,谢谢阅读!
祝你今天开心愉快!**

欢迎访问我的csdn博客,我们一同成长!

"不管做什么,只要坚持下去就会看到不一样!在路上,不卑不亢!"

博客首页http://blog.csdn.net/u010648555

posted @ 2018-03-02 00:33  阿飞云漫步  阅读(7864)  评论(0编辑  收藏  举报