编译安装Cronolog轮转Apache和Tomcat日志

cronolog是一款用于Apache、Tomcat、Nginx等Web服务器日志轮询的工具,能够按日、月或小时自动切割日志文件,支持配置单个文件的最大大小。本文介绍如何安装cronolog并配置Apache及Tomcat的日志输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        cronolog 是一款日志轮询(rotation)工具,可以用它来把Apache, Tomcat, Nginx等WEB服务器的输出日志切分按日或者按月保存。cronolog 从标准输入中读取日志内容,然后把他们写到按指定格式命名的日志文件中。当日期改变后, cronolog会把之前的日志文件关闭,再打开一个包含新日期的日志文件。利用cronolog可以完美的解决web服务器日志文件不断增大,且不能在运行时删除的问题。

cronolog特点:

        cronolog 特点cronolog可以按月、日甚至按小时进行日志轮询,也可以配置每个日志文件的最大值,当文件大小达到这个最大值时,自动记录到下一个日志文件中。

        cronolog稳定版本为 1.6.2,但此版本有一个弊端:当日志文件的大小到2G(2150726147字节)时,cronolog进程就变成僵尸进程,即日志无法再写入,cronolog 1.7 版本解决了这个问题。

下载

1
cronolog-1.7.0-beta.tar.gz

安装

1
2
3
4
5
# tar zxvf cronolog-1.7.0-beta.tar.gz
# cd cronolog-1.7.0
# ./configure --prefix=/usr/local/cronolog
# make
# make install

如果不指定--prefix路径,cronolog默认安装在/usr/local/sbin/cronolog

修改Apache虚拟主机配置

编辑httpd.conf文件,将其中的

1
[root@localhost~]#vim/etc/httpd/httpd.conf

将默认日志:

1
CustomLog "logs/access_log"combined


修改为:

1
CustomLog  "| /usr/local/sbin/cronolog  /logs/www/access_%Y%m%d.log"  combined

其中%Y%m%d为日志文件分割方式,即为“年月日”。

关键点在于: 被轮询的日志一定要是绝对路径,不能是相对路径。

老男孩学习笔记:

0691aa1fa296bfd644e23a8aad7710bc.jpg-wh_

30f4d22d6d57a221200c8b21af91c834.jpg-wh_

修改Tomcat配置

修改tomcat的bin目录下的catalina.sh

1
# vim /usr/local/tomcat/bin/catalina.sh

找到如下代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
CATALINA_OUT= "$CATALINA_BASE" /logs/catalina .out
touch  "$CATALINA_OUT"
  if  "$1"  "-security"  ] ;  then
     if  [ $have_tty - eq  1 ];  then
       echo  "Using Security Manager"
     fi
     shift
     "$_RUNJAVA"  "$LOGGING_CONFIG"  $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
       -Djava.endorsed. dirs = "$JAVA_ENDORSED_DIRS"  -classpath  "$CLASSPATH"  \
       -Djava.security.manager \
       -Djava.security.policy== "$CATALINA_BASE" /conf/catalina .policy \
       -Dcatalina.base= "$CATALINA_BASE"  \
       -Dcatalina.home= "$CATALINA_HOME"  \
       -Djava.io.tmpdir= "$CATALINA_TMPDIR"  \
       org.apache.catalina.startup.Bootstrap  "$@"  start \
       >>  "$CATALINA_OUT"  2>&1 &
   else
     "$_RUNJAVA"  "$LOGGING_CONFIG"  $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
       -Djava.endorsed. dirs = "$JAVA_ENDORSED_DIRS"  -classpath  "$CLASSPATH"  \
       -Dcatalina.base= "$CATALINA_BASE"  \
       -Dcatalina.home= "$CATALINA_HOME"  \
       -Djava.io.tmpdir= "$CATALINA_TMPDIR"  \
       org.apache.catalina.startup.Bootstrap  "$@"  start \
       >>  "$CATALINA_OUT"  2>&1 &
   fi


将上面CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out修改为:

1
CATALINA_OUT="$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out

将最上面的touch “$CATALINA_OUT”注释掉如下

1
#touch "$CATALINA_OUT"

将下面两处

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

修改为

1
2
       org.apache.catalina.startup.Bootstrap  "$@"  start 2>&1 \
        /usr/local/sbin/cronolog  "$CATALINA_OUT"  >>  /dev/null  2>&1 &

1
2
      org.apache.catalina.startup.Bootstrap  "$@"  start 2>&1 \
         /usr/local/cronolog/sbin/cronolog  "$CATALINA_BASE" /logs/catalina .%Y-%m-%d.out >>  /dev/null  &

然后重启tomcat即可



      本文转自ling118 51CTO博客,原文链接:http://blog.51cto.com/meiling/1976745,如需转载请自行联系原作者




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值