如何切割tomcat时间段日志

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何切割tomcat时间段日志相关的知识,希望对你有一定的参考价值。

一:用linux的cronolog将日志按照时间分割
找到tomcat/bin/catalina.sh 中

org.apache.catalina.startup.Bootstrap "$@" start /
>> "$CATALINA_BASE"/logs/catalina.out 2>&1 &

修改为

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

二:使用log4j将分割日志
1. tomcat/common/lib/下放置log4j.jar,commons-logging.jar
2. tomcat/common/classes/下配置log4j.propeties
参考技术A (1)首先安装cronolog

yum install cronolog -y

(2)修改Tomcat配置文件

先停止tomcat服务,然后修改以下文件:
%CATALINA_HOME%/bin/catalina.sh


org.apache.catalina.startup.Bootstrap "$@" start \
>> "$CATALINA_BASE"/logs/catalina.out 2>&1 &

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

修改完毕后重新启动tomcat服务。本回答被提问者采纳

切割TOMCAT日志

tomcat的catalina.out日志如果不做操作的话,日志就会日积月累的不断增加。我刚入职的时候发现某台服务器的硬盘报警,排查之后我慌了,一个tomcat的日志居然有100G,这怎么可以,在网上找各种各样的解决方案,找到了使用log4j来切割日志的方法,次方法较简便,不用写脚本,也不用放入到crontab中,废话不多说,直接上菜了。


1. 准备jar包
  1. <div>log4j-1.2.17.jar</div>

  2. <div>tomcat-juli.jar</div>

  3. <div>tomcat-juli-adapters.jar</div><div>##</div>
复制代码
这三个jar包适用于tomcat8.0.x系列。

2. 将上面的三个jar包拷贝到 Tomcat 的 lib 目录下;
  1. [[email protected] lib]# pwd
  2. /alidata1/eppapi/apache-tomcat-cnnic/lib
  3. [[email protected] lib]# ll log4j-1.2.8.jar tomcat-juli-adapters.jar  tomcat-juli.jar
  4. -rw-r--r-- 1 eppapi eppapi 352668 Jun  4  2015 log4j-1.2.8.jar
  5. -rw-r----- 1 eppapi eppapi  32520 Jun  4  2015 tomcat-juli-adapters.jar
  6. -rw-r--r-- 1 root root 78645 4月  21 09:42 tomcat-juli.jar
复制代码


3. 将 tomcat-juli.jar 拷贝到Tomcat 的 bin 目录下,替换原有的jar包;
  1. <p style="text-indent: 1em;">[[email protected]]# ll tomcat-juli.jar </p><p style="text-indent: 1em;">-rw-r--r-- 1eppapi eppapi 78645 Jun  4  2015 tomcat-juli.jar</p>
复制代码

4. 修改 Tomcat 的conf/context.xml 文件,将<Context>为<Context swallowOutput="true">
  1. <p style="text-indent: 1em;">[[email protected]]# vim apache-tomcat-cnnic/conf/context.xml</p><p style="text-indent: 1em;"><span style="line-height: 1.5;">修改配置文件中19行的配置,如下图所示:</span></p><img width="441" _height="41" src="file:///C:/Users/admin/AppData/Local/Temp/msohtmlclip1/01/clip_image003.png" border="0" >
  2. <p style="text-indent: 1em;">增加 swallowOutput="true" 的属性配置,只有这样才能完全的把tomcat的stdout给接管过来。这一步很关键在官网及网上找了许多资料都没有提及。</p>
复制代码

5. 删除 Tomcat 的conf/logging.properties 文件(或者重命名-建议);
  1. <p style="text-indent: 1em;">[[email protected]]# ll logging.properties </p><p style="text-indent: 1em;">-rw------- 1root root 3387 1月 10 2015 logging.properties</p><p style="text-indent: 1em;">[[email protected]]# rm -fr logging.properties</p><p style="text-indent: 1em;"><span style="text-indent: 1em; line-height: 1.5;">[[email protected]]# ll logging.properties</span></p><p style="text-indent: 1em;"><span style="line-height: 1.5;">ls: 无法访问logging.properties: 没有那个文件或目录</span></p>提示:建议剪切到其他目录中。
复制代码

6. 在 Tomcat 的 lib 目录下创建 log4j.properties 文件:
  1. <p style="text-indent: 1em;">[[email protected]]# ll log4j.properties</p><p style="text-indent: 1em;">-rw-r--r-- 1root root 2343 6月  4 2015 log4j.properties</p><p style="text-indent: 1em;">[[email protected]]# vim log4j.properties</p>######添加如下配置信息:######### (此条不要复制)
  2. <p style="text-indent: 1em;">log4j.rootLogger= INFO, CATALINA</p>
  3. <p style="text-indent: 1em;"># Define allthe appenders</p><p style="text-indent: 1em;">log4j.appender.CATALINA= org.apache.log4j.DailyRollingFileAppender</p><p style="text-indent: 1em;">log4j.appender.CATALINA.File= ${catalina.base}/logs/catalina</p><p style="text-indent: 1em;">log4j.appender.CATALINA.Append= true</p><p style="text-indent: 1em;">log4j.appender.CATALINA.Encoding= UTF-8</p><p style="text-indent: 1em;"># Roll-overthe log once per day</p><p style="text-indent: 1em;">log4j.appender.CATALINA.DatePattern= ‘.‘yyyy-MM-dd‘.log‘</p><p style="text-indent: 1em;">log4j.appender.CATALINA.layout= org.apache.log4j.PatternLayout</p><p style="text-indent: 1em;">log4j.appender.CATALINA.layout.ConversionPattern= %d [%t] %-5p %c- %m%n</p>
  4. <p style="text-indent: 1em;">log4j.appender.LOCALHOST= org.apache.log4j.DailyRollingFileAppender</p><p style="text-indent: 1em;">log4j.appender.LOCALHOST.File= ${catalina.base}/logs/localhost</p><p style="text-indent: 1em;">log4j.appender.LOCALHOST.Append= true</p><p style="text-indent: 1em;">log4j.appender.LOCALHOST.Encoding= UTF-8</p><p style="text-indent: 1em;">log4j.appender.LOCALHOST.DatePattern= ‘.‘yyyy-MM-dd‘.log‘</p><p style="text-indent: 1em;">log4j.appender.LOCALHOST.layout= org.apache.log4j.PatternLayout</p><p style="text-indent: 1em;">log4j.appender.LOCALHOST.layout.ConversionPattern= %d [%t] %-5p %c- %m%n</p>
  5. <p style="text-indent: 1em;">log4j.appender.MANAGER= org.apache.log4j.DailyRollingFileAppender</p><p style="text-indent: 1em;">log4j.appender.MANAGER.File= ${catalina.base}/logs/manager</p><p style="text-indent: 1em;">log4j.appender.MANAGER.Append= true</p><p style="text-indent: 1em;">log4j.appender.MANAGER.Encoding= UTF-8</p><p style="text-indent: 1em;">log4j.appender.MANAGER.DatePattern= ‘.‘yyyy-MM-dd‘.log‘</p><p style="text-indent: 1em;">log4j.appender.MANAGER.layout= org.apache.log4j.PatternLayout</p><p style="text-indent: 1em;">log4j.appender.MANAGER.layout.ConversionPattern= %d [%t] %-5p %c- %m%n</p>
  6. <p style="text-indent: 1em;">log4j.appender.HOST-MANAGER= org.apache.log4j.DailyRollingFileAppender</p><p style="text-indent: 1em;">log4j.appender.HOST-MANAGER.File= ${catalina.base}/logs/host-manager</p><p style="text-indent: 1em;">log4j.appender.HOST-MANAGER.Append= true</p><p style="text-indent: 1em;">log4j.appender.HOST-MANAGER.Encoding= UTF-8</p><p style="text-indent: 1em;">log4j.appender.HOST-MANAGER.DatePattern= ‘.‘yyyy-MM-dd‘.log‘</p><p style="text-indent: 1em;">log4j.appender.HOST-MANAGER.layout= org.apache.log4j.PatternLayout</p><p style="text-indent: 1em;">log4j.appender.HOST-MANAGER.layout.ConversionPattern= %d [%t] %-5p %c- %m%n</p>
  7. <p style="text-indent: 1em;">log4j.appender.CONSOLE= org.apache.log4j.ConsoleAppender</p><p style="text-indent: 1em;">log4j.appender.CONSOLE.Encoding= UTF-8</p><p style="text-indent: 1em;">log4j.appender.CONSOLE.layout= org.apache.log4j.PatternLayout</p><p style="text-indent: 1em;">log4j.appender.CONSOLE.layout.ConversionPattern= %d [%t] %-5p %c- %m%n</p>
  8. <p style="text-indent: 1em;"># Configurewhich loggers log to which appenders</p><p style="text-indent: 1em;">log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost]= INFO, LOCALHOST</p><p style="text-indent: 1em;">log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager]=\</p>  INFO, MANAGER
  9. <p style="text-indent: 1em;">log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager]=\</p>  INFO, HOST-MANAGER
复制代码

7.此时重启服务即生效,配置完成。





以上是关于如何切割tomcat时间段日志的主要内容,如果未能解决你的问题,请参考以下文章

tomcat 日志切割

Tomcat日志切割

tomcat日志切割和定期删除

Tomcat日志切割(logrotate)

Tomcat日志切割(logrotate)

杂集:centos7中利用logrotate工具切割tomcat日志