引言:
公司项目部署在tomcat上,随着时间的推移,tomcat/logs下的日志文件catalina.out会越来越大。如下图所示,是我们公司的项目日志文件,大家可以看到catalina.out已经有5.2G这么大了。为了避免日志文件不断的增大下去,前段时间利用cronlog对日志文件做了切割,切割以后日志文件就会每天单独生成一个,而不会都堆积到一个catalina.out中。本文适用于tomcat7及以后版本。
如何切割:
1、下载安装包,我下载的是cronolog-1.6.2.tar.gz ,不想自己找的可以直接到我网盘下载:
https://pan.baidu.com/s/1EgaGyZiG2BFEGjYAPgui7A 提取码: 6wy9
2、放到自己有权限的目录下面比如我的是在/home/klapp/bddj_new/cronolog
3、解压:tar zxvf cronolog-1.6.2.tar.gz,解压后就生成了对应的文件夹,如图:
4、进入cronolog安装文件所在目录:cd cronolog-1.6.2 ,在这个目录中有很多文件,其中那个configure就是我们一会要安装cronolog要用到的。
这里需要注意一点,cronolog在安装的过程中默认会在 /usr/local/下新建sbin文件夹,而我们是非root用户,是没有权限在这个目录下创建文件夹的,所以直接通过网上所说的命令:./configure 之后再执行make和make install是会报错的。所以我们需要做一些调整,不让文件夹创建在/usr/local/下,而是创建在一个我们拥有权限的目录下。具体怎么调整,看下面的第5部。
5、通过命令vi configure进入到configure中,点击i进入编辑模式,将下面的红框(大约在12行附近)部分的路径修改为你有权限建立文件夹的路径。比如我的就是把原来的/usr/local修改为了/home/klapp/bin ,修改该完以后点击esc键退出编辑模式,之后再输入:wq保存并退出configure
6、再次运行,执行完下面这几条命令后cronolog就算安装完成了。我们到刚才写的目录下看一下发现多了info、man、sbin三个文件夹。
注意,如果这时我们用命令which cronolog验证是否安装成功,可能会出现usr/bin/which: no cronolog in ...的提示,不用担心,这不表示你的cronolog没有安装成功,只是我们在非root用户下安装cronolog都会出现这种情况。which命令会到/usr目录下去找cronolog这个命令,但刚才我们已经把安装目录修改为/home/klapp/bin了,所以会出现上面的提示。
./configure
make
make install
7、cronolog安装完以后,我们就需要去修改tomcat下的catalina.sh文件了(/tomcat7/bin):vi catalina.sh
(1)注释掉(#)下面这句话(大约在行400行左右)
#touch "$CATALINA_OUT"
(2)修改如下的两处(大约在行414、423行左右)
将
org.apache.catalina.startup.Bootstrap "$@" start \
>> "$CATALINA_OUT" 2>&1 &
修改该为:(/home/klapp/bin/sbin/cronolog这个目录是你自己安装cronolog所在的目录)
org.apache.catalina.startup.Bootstrap "$@" start
2>&1 |/home/klapp/bin/sbin/cronolog "$CATALINA_BASE/logs/catalina-%Y-%m-%d.out" &
8、完成之后重起Tomcat就可以看到logs文件中存在catalina-2019-12-03.out样式的日志。如下: