处理Tomcat日志catalina.out日志文件过大的问题

标签: log linux
1人阅读 评论(0) 收藏 举报

一、采用cronlolog工具对日志拆分的方式处理该问题

1、下载cronolog工具,我下载的版本是cronolog-1.6.2
(yum安装:yum install cronolog)
2、将下载好的文件解压,tar xvzf cronolog-1.6.2.tar.gz

3、切换到解压后的文件目录下:cd cronolog-1.6.2

4、初始化和编译安装

./configure  --prefix=/usr/local/cronolog
#make

#make install
#ln -s  /usr/local/cronolog/sbin/* /usr/local/sbin/

5、查看安装版本

#cronolog --version

6、修改tomcat的启动文件(tomcat目录/bin/catalina.sh)

vi 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)修改启动脚本参数(两项)
修改:
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 &
7、重启tomcat
tomcat输出日志文件分割成功,输出log文件格式为:catalina.2015-06-30.out

二、利用Linux自带的logrotate程序来解决catalina.out的日志轮转问题

1.首先编辑logrotate.conf文件,打开compress选项(去掉注释)

[root@localhost ~]# cat /etc/logrotate.conf | grep -v "^$"| grep -v "#"
weekly
rotate 4
create
dateext
compress   <<这一项

2.添加指定文件,在/etc/logrotate.d/目录下新建一个名为tomcat的文件

[root@localhost ~]# cat >/etc/logrotate.d/tomcat <<EOF
/home/tomcat/utr/logs/catalina.out{ #要轮转的文件
    copytruncate    # 创建新的catalina.out副本后,截断源catalina.out文件
    daily    # 每天进行catalina.out文件的轮转
    rotate 7     # 至多保留7个副本
    missingok    # 如果要轮转的文件丢失了,继续轮转而不报错
    compress     # 使用压缩的方式(节省硬盘空间;一个2~3GB的日志文件可以压缩成60MB左右)
    size 16M     # 当catalina.out文件大于16MB时,就轮转
}
EOF

3.执行方式
①自动执行原理

1.每天晚上crond守护进程会运行在/etc/cron.daily目录中的任务列表;
2.与logrotate相关的脚本也在/etc/cron.daily目录中。运行的方式为"/usr/bin/logrotate /etc/logrotate.conf"3./etc/logrotate.conf文件include了/etc/logrotate.d/目录下的所有文件。还包括我们上面刚创建的tomcat文件;
4./etc/logrotate.d/tomcat文件会触发/usr/local/apache-tomcat-8.0.28/logs/catalina.out文件的轮转。

②手动执行:logrotate /etc/logrotate.conf
③只轮转刚刚的tomcat配置文件:logrotate –force /etc/logrotate.d/tomcat

三、Tomcat7.0.55下使用Log4j 接管 catalina.out 日志文件生成方式,按天存放,解决catalina.out日志文件过大问题

  1. 准备jar包:
    log4j-1.2.17.jar (从 http://www.apache.org/dist/logging/log4j/1.2.17/ 下载)
    tomcat-juli.jar, tomcat-juli-adapters.jar (从http://www.apache.org/dist/tomcat/tomcat-7/v7.0.55/bin/extras/下载,根据你的Tomcat版本选择对应的分支)
  2. 将上面的三个jar包拷贝到 Tomcat 的 lib 目录下;
  3. 将 tomcat-juli.jar 拷贝到 Tomcat 的 bin 目录下,替换原有的jar包;
  4. 修改 Tomcat 的 conf/context.xml 文件,将为
    (增加 swallowOutput=”true” 的属性配置,只有这样才能完全的把tomcat的stdout给接管过来。这一步很关键 在官网及网上找了许多资料都没有提及。);
  5. 删除 Tomcat 的 conf/logging.properties 文件(或者重命名-建议);
  6. 在 Tomcat 的 lib 目录下创建 log4j.properties 文件,然后重启服务器:
log4j.rootLogger=INFO, CATALINA
log4j.logger.org.apache=INFO, CATALINA
log4j.logger.org.[hibernate](http://lib.csdn.net/base/javaee)=WARN, CATALINA
log4j.logger.org.springframework=WARN, CATALINA

# Define all the appenders
log4j.appender.CATALINA=org.apache.log4j.DailyRollingFileAppender
log4j.appender.CATALINA.File=${catalina.base}/logs/catalina.out
log4j.appender.CATALINA.Append=true
log4j.appender.CATALINA.Encoding=UTF-8
# Roll-over the log once per day
log4j.appender.CATALINA.DatePattern='.'yyyy-MM-dd'.log'
log4j.appender.CATALINA.layout = org.apache.log4j.PatternLayout
log4j.appender.CATALINA.layout.ConversionPattern = %d [%t] %-5p %c- %m%n

log4j.appender.LOCALHOST=org.apache.log4j.DailyRollingFileAppender
log4j.appender.LOCALHOST.File=${catalina.base}/logs/localhost.
log4j.appender.LOCALHOST.Append=true
log4j.appender.LOCALHOST.Encoding=UTF-8
log4j.appender.LOCALHOST.DatePattern='.'yyyy-MM-dd'.log'
log4j.appender.LOCALHOST.layout = org.apache.log4j.PatternLayout
log4j.appender.LOCALHOST.layout.ConversionPattern = %d [%t] %-5p %c- %m%n

log4j.appender.MANAGER=org.apache.log4j.DailyRollingFileAppender
log4j.appender.MANAGER.File=${catalina.base}/logs/manager.
log4j.appender.MANAGER.Append=true
log4j.appender.MANAGER.Encoding=UTF-8
log4j.appender.MANAGER.DatePattern='.'yyyy-MM-dd'.log'
log4j.appender.MANAGER.layout = org.apache.log4j.PatternLayout
log4j.appender.MANAGER.layout.ConversionPattern = %d [%t] %-5p %c- %m%n

log4j.appender.HOST-MANAGER=org.apache.log4j.DailyRollingFileAppender
log4j.appender.HOST-MANAGER.File=${catalina.base}/logs/host-manager.
log4j.appender.HOST-MANAGER.Append=true
log4j.appender.HOST-MANAGER.Encoding=UTF-8
log4j.appender.HOST-MANAGER.DatePattern='.'yyyy-MM-dd'.log'
log4j.appender.HOST-MANAGER.layout = org.apache.log4j.PatternLayout
log4j.appender.HOST-MANAGER.layout.ConversionPattern = %d [%t] %-5p %c- %m%n

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Encoding=UTF-8
log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern = %d [%t] %-5p %c- %m%n

# Configure which loggers log to which appenders
# Configure which loggers log to which appenders
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost]=INFO, LOCALHOST
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager]=\
  INFO, MANAGER
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager]=\
  INFO, HOST-MANAGER
查看评论

解决Tomcat日志文件catalina.out文件过大问题

转自:http://blog.csdn.net/liuxiao723846/article/details/52131325 随着项目的运行,Tomcat的日志文件catalina....
  • FScyj1
  • FScyj1
  • 2017-08-25 15:44:25
  • 1021

已解决:tomcat的catalina.out日志文件过大

今天发现一个服务器的/opt目录数据过大,最后发现是tomcat中的catalina.out日志过大引起的用du命令查看opt下一层的数据文件大小 [root@ccssapportalp opt]#...
  • fly43108622
  • fly43108622
  • 2015-10-22 17:16:27
  • 4592

linux 下 解决tomcat日志文件catalina.out过大问题

使用cronolog工具切分Tomcat的catalina.out日志文件 1.安装cronolog工具,到http://cronolog.org/进行下载cronolog-1.6.2.tar.g...
  • yueyemoyan
  • yueyemoyan
  • 2016-08-25 17:01:14
  • 202

Tomcat catalina.out文件过大的解决方案整理.

解决Tomcat日志catalina.out文件过大的问题,主要是在相关博客中寻找了一些方案,也留做一个备忘。...
  • StarkLi
  • StarkLi
  • 2016-04-06 09:54:21
  • 7810

tomcat7配置log4j解决catalina.out日志过大问题

tomcat默认安装后,会每天会自动切割日志文件,(catalina.2010-10-08.log、catalina.2010-10-09.log、catalina.2010-10-10.log)这样...
  • liuxiao723846
  • liuxiao723846
  • 2016-08-05 17:50:45
  • 10336

【Tomcat】如何解决catalina.out文件过大的问题

Tomcat默认生成的日志文件catalina.out,随着时间的推移,逐渐增大,可能达到G数量级。文件过大,我们将无法使用过常规编辑工具查看,严重影响系统维护工作。解决此问题,主要从Tomcat和代...
  • lmb55
  • lmb55
  • 2017-05-08 21:13:39
  • 2085

Tomcat 使用Log4j 解决catalina.out日志文件过大

下载 log4j.jar  tomcat-juli.jar  tomcat-juli-adapters.jar log4j.jar  tomcat-juli-adapters.jar  $CATAL...
  • suifeng425257969
  • suifeng425257969
  • 2015-04-23 21:35:35
  • 393

tomcat log 配置解决catalina.out文件过大问题

Tomcat下使用Log4j 接管 catalina.out 日志文件生成方式,按天存放,解决catalina.out日志文件过大问题 1. 准备jar包:     log4j-1.2.1...
  • hbsong75
  • hbsong75
  • 2014-09-20 16:30:45
  • 32673

Tomcat6标准日志,按天输出日志,并禁止catalina.out文件[tomcat中catalina.out日志时间久变得很大]

catalina.out与按天的catalina.xxxx.log重复,屏蔽catalina.out的方法 修改tomcat/conf/logging.properties 1catalina.o...
  • buster2014
  • buster2014
  • 2016-03-10 10:47:55
  • 5831

linux Tomcat catalina.out文件过大解决办法

方法1—分割流 使用cronolog工具切分Tomcat的catalina.out日志文件 cronolog一个对日志切分的小工具,其主页在http://cronolog.org/,我...
  • u013490995
  • u013490995
  • 2014-11-21 16:46:48
  • 2163
    个人资料
    等级:
    访问量: 8
    积分: 21
    排名: 208万+
    文章分类
    文章存档