本文簡單介紹在使用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博客,我們一同成長!
"不管做什么,只要堅持下去就會看到不一樣!在路上,不卑不亢!"