【教程】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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM