论坛首页新手上路 签到
查看: 2758|回复: 0

[知识分享] Tomcat使用cronolog配合CATALINA_OUT_CMD环境变量实现日志切分

[复制链接]
金智教育-王长春

该用户从未签到

7

主题

9

帖子

23

积分

初来乍到

Rank: 1

积分
23
发表于 2020-6-16 14:46:15 | 显示全部楼层 |阅读模式
本帖最后由 wangcc 于 2020-6-16 14:57 编辑

默认情况下,tomcat的catalina.out日志文件是没有像其它日志一样,按日期进行分割,而是全部输出写入到一个catalina.out文件中,这样日积月累就会造成catalina.out日志文件越来越大,给管理造成了不便,为了实现像其它日志文件一样按日期归档,采用cronolog来完成日志分割。
1、cronolog安装可以自行搜索
2、在下面第一张图的tomcat版本之前,如果要使用cronolog来切分日志,需要修改${tomcat}/bin/catalina.sh脚本,主要是取消创建catalina.out文件,然后把原来输出到catalina.out文件的日志交由cronolog来按日期分割:
touch “$CATALINA_OUT” 注释掉
两处
org.apache.catalina.startup.Bootstrap “$@” start \
>> “$CATALINA_OUT” 2>&1 “&”
替换为
org.apache.catalina.startup.Bootstrap “$@” start 2>&1 | /usr/sbin/cronolog “$CATALINA_BASE”/logs/catalina.%Y-%m-%d.out >> /dev/null &

1.png

本文主要讲上图tomcat版本中官方支持的无需修改catalina.sh脚本的方法
在Tomcat9.0.36版本、Tomcat8.5.56版本、Tomcat10.0.0-M6版本中,官方在catalina.sh脚本中添加了对CATALINA_OUT_CMD环境变量的识别,如果该环境变量值不为空,则将在原来的${tomcat}/logs目录下创建catalina.out的命名管道,该命名管道将作为CATALINA_OUT_CMD标准输入:

2.png

catalina.sh里对CATALINA_OUT_CMD的使用描述:

3.png

以下为示例:
1、设置CATALINA_OUT_CMD环境变量

4.png

2、启动tomcat,到logs目录下查看日志文件(注意:如果在设置CATALINA_OUT_CMD之前已经启动过tomcat,logs目录下已存在catalina.out文件,此时在设置完之后直接启动tomcat会报catalina.out不是命名管道错误,需要将catalina.out文件删除再启动):

5.png

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

Archiver|手机版|小黑屋|江苏金智教育信息股份有限公司 ( 系统管理员:binmeng@wisedu.com  

GMT+8, 2021-3-7 22:01

Powered by Discuz! X3.2

© 2015 Design: www.wisedu.com

快速回复 返回顶部 返回列表