tomcat日志切割catalina.out

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

简单粗暴方法:
94018913763303fbc55622379c397c36.png

法一:利用系统logrotate命令来实现tomcat的日志切割

先定义tomcat的pid 文件

修改$TOMCAT_HOME/bin/catalina.sh文件,大约在128行左右,在PRGDIR下面一行添加CATALINA_PID参数行,修改完成后应该跟下面相同。

1
2
3
4
# 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”

1
2
进入logrotate.d
cd  /etc/logrotate .d/

编写tomcat的轮询日志配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[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 


保存退出


给他执行权限

1
chmod  u+x  /etc/logrotate .d /tomcat_ele

测试:执行脚本

1
/usr/sbin/logrotate  -vf   /etc/logrotate .d /tomcat_ele


测试成功然后写入定时任务定时切割

1
2
3
4
#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.解压

1
tar  xf cronolog-1.6.2. tar .gz


3.准备

1
2
cd  cronolog-1.6.2
. /configure

4.编译

1
make


5.编译安装

1
make  install


6.配置tomcat的catalina.sh

删掉或注释 注意注释要放在下边要不让会报错

1
2
org.apache.catalina.startup.Bootstrap “$@” start  \
>> “$CATALINA_BASE” /logs/catalina .out 2>&1 &

添加下边一行

1
2
org.apache.catalina.startup.Bootstrap  "$@"  start  2>&1 \
/usr/local/sbin/cronolog  "$CATALINA_BASE" /logs/catalina .%Y-%m-%d.out >>  /dev/null  &

注意一共要修改两处 一模一样的修改

这样的话就配置完了 配置完成可以重启tomcat

1
2
. /catalina .sh stop 或. /shutdown .sh
. /catalina .sh start  或. /start .sh

会看到log/下边的catalina.out 变成了以时间命令的日志文件 配置完成


日志改名

如果不习惯catalina日志以时间命令 可以编写一个脚本实现日志改名  crontab执行

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

定时任务脚本内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[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完成。






 解压缩 
    # tar zxvf cronolog-1.6.2.tar.gz 
进入cronolog安装文件所在目录 
    # cd cronolog-1.6.2 
运行安装 
    # ./configure 
    # make 
    # make install

成功后 运行which cronolog会找到对应的路径 /usr/local/sbin/cronolog

在tomcat的bin目录的spacer.gifcatalina.sh 

中找到2行:

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 &  
上面会有一行touch “$CATALINA_BASE”/logs/catalina.out
把其注释掉即可
这样每天就会产生一个catalina.2xxx-0x-xx.out的文件 零点自动分割










本文转自 蓝叶子Sheep 51CTO博客,原文链接:http://blog.51cto.com/dellinger/1964674,如需转载请自行联系原作者
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
6月前
|
应用服务中间件
Tomcat日志中文乱码
Tomcat日志中文乱码
|
7月前
|
应用服务中间件
Tomcat日志中文乱码
通过以上步骤,你可以在Tomcat日志中解决中文乱码问题,确保日志以UTF-8编码输出。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
58 4
|
7月前
|
Java 应用服务中间件
解决IDEA tomcat控制台只有server日志
请注意,确保在调试或开发阶段使用更详细的日志级别(如 `DEBUG`或 `TRACE`),但在生产环境中应将其设置为更高的级别以减少日志量。
182 0
|
7月前
|
Oracle Java 关系型数据库
淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Server.鏈嶅姟鍣ㄧ増鏈�: Apache Tomcat/8.5.
淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Server.鏈嶅姟鍣ㄧ増鏈�: Apache Tomcat/8.5.
113 1
|
应用服务中间件
Tomcat启动时日志报 dcom.sun.manager.jmxremote 异常导致无法正常启动使用
Tomcat启动时日志报 dcom.sun.manager.jmxremote 异常导致无法正常启动使用
181 0
|
应用服务中间件 Linux
Linux不重启Tomcat清空catalina.out日志的几种方法
Linux不重启Tomcat清空catalina.out日志的几种方法
497 0
|
2月前
|
安全 应用服务中间件 网络安全
Tomcat如何配置PFX证书?
【10月更文挑战第2天】Tomcat如何配置PFX证书?
220 7
|
2月前
|
存储 算法 应用服务中间件
Tomcat如何配置JKS证书?
【10月更文挑战第2天】Tomcat如何配置JKS证书?
319 4