码迷,mamicode.com
首页 > 其他好文 > 详细

tomcat日志切割catalina.out

时间:2017-09-12 23:04:00      阅读:178      评论:0      收藏:0      [点我收藏+]

标签: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的轮询日志配置

[root@iZ25p5pwvouZ 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 “$@” start  >> “$CATALINA_BASE”/logs/catalina.out 2>&1 &

添加下边一行

org.apache.catalina.startup.Bootstrap "$@" 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执行

[root@iZ25p5pwvouZ logs]# crontab -e
#auth root
#date 2017-09-12
#定时刷新ele么的项目日志
00 05 * * * /bin/sh /server/scripts/ele_logortate.sh &>/dev/null

定时任务脚本内容

[root@iZ25p5pwvouZ 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

标签:out   catalina   日志切割   

原文地址:http://dellinger.blog.51cto.com/12445009/1964674

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!