cronolog切割tomcat的catalina.out日志

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: cronolog切割tomcat的catalina.out日志


  1. Linux下运行的Web服务器Apache,默认日志文件是不分割的,一个整文件既不易于管理,也不易于分析统计。
  2. 安装cronolog后,可以将日志文件按时间分割,易于管理和分析。
  3. 补充:apache自带的日志分割工具rotatelogs,据专家说在进行日志切割时容易丢日志,所以这里我们就用cronolog来做日志切割


cronolog 简介

Welcome to cronolog.org,
the home of the cronolog web log rotation program.cronolog is a simple filter program
that reads log file entries from standard input and writes each entry to the output file specified
by a filename template and the current date and time.
When the expanded filename changes, the current file is closed and a new one opened.
cronolog is intended to be used in conjunction with a Web server,
such as Apache, to split the access log into daily or monthly logs.
cronolog 是一个简单的过滤程序,读取日志文件条目从标准输入和输出的每个条目并写入指定的日志文件的文件名模板和当前的日期和时间。
当扩展文件名的变化,目前的文件是关闭,新开辟的。
cronolog 旨在和一个Web服务器一起使用,如Apache,分割访问日志为每天或每月的日志。


cronolog 特点

  • cronolog主要和Web服务器配置使用,特别是Apache服务器,Apache 默认日志文件是不分割的,一个整文件既不易于管理,也不易于分析统计。
  • 安装cronolog后,可以将日志文件按时间分割,易于管理和分析。


cronolog 安装

1、下载

# cronolog-1.6.2.tar.gz


下载地址:https://fossies.org/linux/www/old/cronolog-1.6.2.tar.gz/cloc.html

 

2、解压缩

# tar zxvf cronolog-1.6.2.tar.gz

 

3、进入cronolog安装文件所在目录

# cd cronolog-1.6.2

 

4、运行安装 [进入文件夹,使用./configure命令进行编译,可以加--prefix指定安装目录]

# ./configure [如:./configure --prefix=/usr/local/cronolog]

# make

# make install

 

5、查看cronolog安装后所在目录(验证安装是否成功)

# which cronolog

一般情况下显示为:/usr/local/sbin/cronolog

 


cronolog 应用【配置tomcat】

  • 找到 tomcat 中 bin 目录下的 catalina.sh   文件

1. 查找

if [ -z "$CATALINA_OUT" ] ; then

CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out

fi

修改为

if [ -z "$CATALINA_OUT" ] ; then CATALINA_OUT="$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out fi

2. 查找 touch "$CATALINA_OUT"

注释掉

#touch "$CATALINA_OUT"

3. 查找 "$CATALINA_OUT" 2>&1 "&"

有两处..

org.apache.catalina.startup.Bootstrap "$@" start \

>> "$CATALINA_OUT" 2>&1 "&"

都修改为 : [第一种方式:已经进行第一个步骤]

org.apache.catalina.startup.Bootstrap "$@" start 2>&1 \

| /usr/local/sbin/cronolog "$CATALINA_OUT" >> /dev/null &

 

都修改为 : [第二种方式:没有进行第一个步骤]

 

org.apache.catalina.startup.Bootstrap "$@" start 2>&1 \

| /usr/local/sbin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out >> /dev/null &

 

  • 以上的“/usr/local/sbin/cronolog”配置的是cronolog的安装目录,这里要根据你的cronolog安装目录进行配置。
  • 配置完成之后,重启tomcat就可以了。重启访问应用之后就会发现,Catalina.out不会再输出日志,日志会输入到一个catalina.日期.out的文件中


注意:

org.apache.catalina.startup.Bootstrap $@ start \

>> $CATALINA_BASE”/logs/catalina.out 2>&1 &

请注意,修改后把这两行删掉,而不是注释,否则java会报Usage参数错误 并且在你查看logs目录下生成的日志会发现报错

/usr/local/tomcat0/bin/catalina.sh: line 396: org.apache.catalina.startup.Bootstrap:command not found

修改成:

org.apache.catalina.startup.Bootstrap "$@" start 2>&1 \

| /usr/local/sbin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.log >> /dev/null &

请注意,连接符\后不能留空格,否则会报错误:

“/usr/local/tomcat0/bin/catalina.sh: line 395:syntax error near unexpected token`|'

/usr/local/tomcat0/bin/catalina.sh: line 395: ` | /usr/local/sbin/cronolog "$CATALINA_BASE"/logs/all.%Y-%m-%d.log >> /dev/null &'”

 

cronolog 使用

  • 基本使用
[root@node6 ~]# cronolog -h
usage: cronolog [OPTIONS] logfile-spec
-H NAME, --hardlink=NAME maintain a hard link from NAME to current log
-S NAME, --symlink=NAME maintain a symbolic link from NAME to current log
-P NAME, --prev-symlink=NAME maintain a symbolic link from NAME to previous log
-l NAME, --link=NAME same as -S/--symlink
-h, --help print this help, then exit
-p PERIOD, --period=PERIOD set the rotation period explicitly
-d DELAY, --delay=DELAY set the rotation period delay
-o, --once-only create single output log from template (not rotated)
-x FILE, --debug=FILE write debug messages to FILE
( or to standard error if FILE is "-")
-a, --american American date formats
-e, --european European date formats (default)
-s, --start-time=TIME starting time
-z TZ, --time-zone=TZ use TZ for timezone
-V, --version print version number, then exit

 


  • cronolog 一般是采取管道的方式来工作的,采用如下的形式:
  1. [root@node6 ~]# loggenerator | cronolog log_file_pattern
  • 其中,loggenerator为产生log的程序,而log_file_pattern是日志文件的路径,可以在其中加入cronolog所支持的时间相关的pattern字符,如/www/log/%y/%m/%d/access.log。其pattern为%字符后跟一特殊字符,简述如下:

 

  • 转义符:  
  1. % %字符
  2. n 换行
  3. t 水平制表符

 

  • 时间域:  
  1. H 小时(00..23)
  2. I 小时(01..12)
  3. p locale下的AMPM标识
  4. M 分钟(00..59)
  5. S  (00..61, which allows for leap seconds)
  6. X locale下时间表示符(e.g.: "15:12:47")
  7. Z 时区。若时区不能确定,则无意义
  • 日期域:  
  1. a locale下的工作日简名(e.g.: Sun..Sat)
  2. A locale下的工作日全名(e.g.: Sunday .. Satur-ay)
  3. b locale下的月份简称(e.g.: Jan .. Dec)
  4. B locale下的月份全称(e.g.: January .. December)
  5. c locale下的日期和时间(e.g.: "Sun Dec 15 14:12:47 GMT 1996")
  6. d 当月中的天数 (01 .. 31)
  7. j 当年中的天数 (001 .. 366)
  8. m 月数 (01 .. 12)
  9. U 当年中的星期数,以周日作为一周开始,其中第一周为首个含星期天的星期(00..53)
  10. W 当年中的星期数,以星期一作为一周的开始,其中第一周为首个含星期天的星期(00..53)
  11. w 工作日数(0 .. 6, 0表示星期天)
  12. x locale下的日期表示(e.g. "13/04/97")
  13. y 两位数的年份(00 .. 99)
  14. Y 四位数的年份(1970 .. 2038)

参考来源: http://freeloda.blog.51cto.com/2033581/1346076/

参考来源:http://blog.sina.com.cn/s/blog_e5cbae8e0102vmqv.html



相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
5月前
|
应用服务中间件
Tomcat日志中文乱码
Tomcat日志中文乱码
|
6月前
|
应用服务中间件
Tomcat日志中文乱码
通过以上步骤,你可以在Tomcat日志中解决中文乱码问题,确保日志以UTF-8编码输出。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
56 4
|
6月前
|
Java 应用服务中间件
解决IDEA tomcat控制台只有server日志
请注意,确保在调试或开发阶段使用更详细的日志级别(如 `DEBUG`或 `TRACE`),但在生产环境中应将其设置为更高的级别以减少日志量。
169 0
|
6月前
|
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.
112 1
|
应用服务中间件
Tomcat启动时日志报 dcom.sun.manager.jmxremote 异常导致无法正常启动使用
Tomcat启动时日志报 dcom.sun.manager.jmxremote 异常导致无法正常启动使用
172 0
|
1月前
|
安全 应用服务中间件 网络安全
Tomcat如何配置PFX证书?
【10月更文挑战第2天】Tomcat如何配置PFX证书?
182 7
|
1月前
|
存储 算法 应用服务中间件
Tomcat如何配置JKS证书?
【10月更文挑战第2天】Tomcat如何配置JKS证书?
257 4
|
3月前
|
网络协议 Java 应用服务中间件
tomcat配置域名及HTTPS
tomcat配置域名及HTTPS