让Tomcat的日志按天进行分割,每天输出一份新的日志文件

在使用Tomcat运行项目时,项目的日志一般会输出到tomcat的logs文件夹下的catalina.out文件中,日积月累,该文件会非常的大,导致一般的文本编辑器根本无法打开,更别说从几百G的文件里找报错日志去定位问题了,因此我们可以利用Cronolog这个工具使日志按照日期输出,让tomcat每天输出一份日志文件,方便我们查找定位线上问题。

1、下载并安装Cronolog

点击此处下载cronolog-1.6.2.tar.gz

1
2
3
4
5
6
7
8
9
10
11
12
# 解压安装包
tar -zxvf cronolog-1.6.2.tar.gz

# 进入目录
cd cronolog-1.6.2

# 安装
./configure && make && make install

# 查看是否安装成功(记下路径,后面有用)
which cronolog
/usr/local/sbin/cronolog

2、修改Tomcat文件

本文使用Tomcat 8.5作为示例,不同版本的catalina.sh文件可能稍有区别

1
2
3
4
5
6
7
8
9
10
11
# 进入Tomcat的bin目录下
cd apache-tomcat-8.5.95/bin/

# 备份一下源文件
cp catalina.sh catalina.sh.bak

# 打开catalina.sh
vim catalina.sh

# 在vim命令模式下输入/搜索,N键查找下一个
/org.apache.catalina.startup.Bootstrap "$@" start \
1
2
3
# 找到后将上图这两处改为下面的内容(第二行开头|后的路径即为cronolog的安装目录)
org.apache.catalina.startup.Bootstrap "$@" start 2>&1\
| /usr/local/sbin/cronolog "$CATALINA_BASE"/logs/catalina-%Y-%m-%d.out >> /dev/null &

最后保存并启动Tomcat即可在apache-tomcat-8.5.95/logs目录下看到对应日期的日志文件了