tomcat日誌切割catalina.out
阿新 • • 發佈:2017-09-13
out catalina 日誌切割
法一:利用系統logrotate命令來實現tomcat的日誌切割
先定義tomcat的pid 文件
修改$TOMCAT_HOME/bin/catalina.sh文件,大約在128行左右,在PRGDIR下面一行添加CATALINA_PID參數行,修改完成後應該跟下面相同。
# Get standard environment variables PRGDIR=`dirname "$PRG"` CATALINA_PID=/var/run/tomcat.pid #CATALINA_PID=$PRGDIR/CATALINA_PID
也可以自定義pid路徑,例如“CATALINA_PID=/var/run/tomcat.pid”
進入logrotate.d cd /etc/logrotate.d/
編寫tomcat的輪詢日誌配置
[[email protected] logrotate.d]# vim tomcat_ele /mnt/tomcat8_ele/logs/catalina.out { daily rotate 15 missingok notifempty dateext compress delaycompress create 600 root root sharedscripts postrotate if [ -f /var/run/tomcat_ele.pid ]; then kill -USR1 `cat /var/run/tomcat_ele.pid` fi endscript }
詳細參數請參見:http://dellinger.blog.51cto.com/12445009/1964564
保存退出
給他執行權限
chmod u+x /etc/logrotate.d/tomcat_ele
測試:執行腳本
/usr/sbin/logrotate -vf /etc/logrotate.d/tomcat_ele
測試成功然後寫入定時任務定時切割
#auth root #date 2017-09-12 #定時刷新ele麽的項目日誌 00 00 * * * /usr/sbin/logrotate -vf /etc/logrotate.d/tomcat_ele &>/dev/null
配置完成OK
法二“利用cronlog工具來實現日誌切割
1.軟件包準備
從51cto中下載一個包cronolog-1.6.2.tar.gz
http://down.51cto.com/data/336272
2.解壓
tar xf cronolog-1.6.2.tar.gz
3.準備
cd cronolog-1.6.2 ./configure
4.編譯
make
5.編譯安裝
make install
6.配置tomcat的catalina.sh
刪掉或註釋 註意註釋要放在下邊要不讓會報錯
org.apache.catalina.startup.Bootstrap “[email protected]” start >> “$CATALINA_BASE”/logs/catalina.out 2>&1 &
添加下邊一行
org.apache.catalina.startup.Bootstrap "[email protected]" start 2>&1 | /usr/local/sbin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out >> /dev/null &
註意一共要修改兩處 一模一樣的修改
這樣的話就配置完了 配置完成可以重啟tomcat
./catalina.sh stop 或./shutdown.sh ./catalina.sh start 或./start.sh
會看到log/下邊的catalina.out 變成了以時間命令的日誌文件 配置完成
日誌改名
如果不習慣catalina日誌以時間命令 可以編寫一個腳本實現日誌改名 crontab執行
[[email protected] logs]# crontab -e #auth root #date 2017-09-12 #定時刷新ele麽的項目日誌 00 05 * * * /bin/sh /server/scripts/ele_logortate.sh &>/dev/null
定時任務腳本內容
[[email protected] logs]# cat /server/scripts/ele_logortate.sh #!/bin/sh Path="/mnt/tomcat8_ele/logs/" Yesterday=`date +%F -d "-1 day"` TodayFile=`echo ${Path}catalina.$(date +%F).out` if [ -f $TodayFile ] then /bin/mv ${Path}catalina.out ${Path}catalina.$Yesterday.out &>/dev/null if [ $? -ne 0 ];then echo "`date +%F` 改名失敗" >>/tmp/ele_logortate.log fi sleep 5 /bin/mv $TodayFile ${Path}catalina.out &>/dev/null if [ $? -ne 0 ];then echo "`date +%F` 改名失敗" >>/tmp/ele_logortate.log fi else echo "沒有 今天的日誌 配置失敗" >>/tmp/ele_logortate.log fi
OK完成。
本文出自 “藍葉子_架構” 博客,請務必保留此出處http://dellinger.blog.51cto.com/12445009/1964674
tomcat日誌切割catalina.out