用cronolog作tomcat的日志分割(tomcat7.0、tomcat8.5)
Tomcat7和Tomcat8做日志分割)
cronolog - 将日志消息写入根据模板定义的日志文件处理程序
cronolog[选项]…模板
描述cronolog是一个简单的程序,它从输入中读取日志消息并将其写入一组输出文件,这些文件的名称是使用模板和当前日期和时间构造的。模板使用与Unix date(1)命令相同的格式说明符(与标准的C strftime库函数相同)。
之前写一个消息cronolog检查时间是否当前日志文件仍然是有效的,如果不是它关闭当前文件,扩展模板使用当前日期和时间来生成一个新的文件名,打开新文件(创建新的日志文件的路径上没有的目录根据需要,除非程序编译-DDONT_CRE ATE_SUBDIRS应承担)和计算时间的新文件将成为无效。
cronolog用于与Web服务器(如Apache)结合使用,以便将访问日志划分为每日或每月的日志。例如,Apache配置参数:
TransferLog “|/usr/sbin/cronolog /www/logs/%Y/%m/%d/access.log”
ErrorLog “|/usr/sbin/cronolog /www/logs/%Y/%m/%d/errors.log”
会指示Apache将其访问和错误日志消息管道到cronolog的单独副本中,这将在按日期组织的目录层次结构中每天创建新的日志文件,即在1996年12月31日将消息写入/ www /日志/ 1996/12/31 / access.log
/ www /日志/ 1996/12/31 / errors.log
午夜之后的文件
/ www /日志/ 1997/01/01 / access.log
/ www /日志/ 1997/01/01 / errors.log
将使用,如果目录1997、1997/01和1997/01/01还不存在,则创建它们。(注意,在版本1.2之前,Apache不允许将程序指定为ErrorLog指令的参数。)
cronolog
检查机器上有没有cronolog
whereis cronolog
如果机器上没有cronolog则需要安装一下
yum install cronolog
默认安装在此位置了
一个作用于Tomcat的cronolog程序应该是这个样子的:
Tomcat 7
在我们配置好catalina.sh之后不需要手动去启动cronolog程序,他会在我们启动tomcat的时候自动带起来。
以下的流程截图是准备要修改的配置,下面紧跟的代码块是要改成的样子。
为了让大家更快的找到配置项的位置我把源配置项的行号和目标配置的行号都放上来了,因为版本的不同配置项所在行号不一定一样,不过肯定不会差很多,注意大家记得不要把行号也放到配置里就行。
修改catalina.sh启动Bash文件
bin/catalina.sh
第一步
221 CATALINA_OUT="$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out
第二步
462 # touch "$CATALINA_OUT"
第三步
476 org.apache.catalina.startup.Bootstrap "aaa@qq.com" start 2>&1 \
477 | /usr/local/sbin/cronolog "$CATALINA_OUT" >> /dev/null &
第四步
486 org.apache.catalina.startup.Bootstrap "aaa@qq.com" start 2>&1 \
487 | /usr/local/sbin/cronolog "$CATALINA_OUT" >> /dev/null &
启动tomcat查看结果
Tomcat8.5
在我们配置好catalina.sh之后不需要手动去启动cronolog程序,他会在我们启动tomcat的时候自动带起来。
以下的流程截图是准备要修改的配置,下面紧跟的代码块是要改成的样子。
为了让大家更快的找到配置项的位置我把源配置项的行号和目标配置的行号都放上来了,因为版本的不同配置项所在行号不一定一样,不过肯定不会差很多,注意大家记得不要把行号也放到配置里就行。
修改catalina.sh启动脚本
第一步
221 CATALINA_OUT="$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out
第二步
466 # touch "$CATALINA_OUT"
第三步
480 org.apache.catalina.startup.Bootstrap "aaa@qq.com" start 2>&1 \
481 | /usr/sbin/cronolog "$CATALINA_OUT" >> /dev/null &
第四步
490 org.apache.catalina.startup.Bootstrap "aaa@qq.com" start 2>&1 \
491 | /usr/sbin/cronolog "$CATALINA_OUT" >> /dev/null &
启动tomcat看结果
结束!