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. [root@iZ25ouayedcZ lib]# pwd
  2. /alidata1/eppapi/apache-tomcat-cnnic/lib
  3. [root@iZ25ouayedcZ 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;">[root@iZ25ouayedcZbin]# 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;">[root@iZ25ouayedcZconf]# 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" alt="">
  2. <p style="text-indent: 1em;">增加 swallowOutput="true" 的属性配置,只有这样才能完全的把tomcat的stdout给接管过来。这一步很关键在官网及网上找了许多资料都没有提及。</p>

复制代码

5. 删除 Tomcat 的conf/logging.properties 文件(或者重命名-建议);

  1. <p style="text-indent: 1em;">[root@tomcatconf]# ll logging.properties </p><p style="text-indent: 1em;">-rw------- 1root root 3387 1月 10 2015 logging.properties</p><p style="text-indent: 1em;">[root@tomcatconf]# rm -fr logging.properties</p><p style="text-indent: 1em;"><span style="text-indent: 1em; line-height: 1.5;">[root@tomcatconf]# 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;">[root@tomcatlib]# 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;">[root@tomcatlib]# 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日志的更多相关文章

  1. shell脚本切割tomcat日志文件

    转自:http://www.cnblogs.com/lishun1005/p/6054816.html 鉴于在调试logback和log4j的文件切割一直无法成功,随性用shell写个脚本用来切割to ...

  2. Cronolog切割tomcat日志

    Cronolog切割tomcat 安装cronolog 1. 将cronolog-1.6.2.tar.gz 上传至/opt 目录 2. 解压缩 #解压缩 tar -zxvf cronolog-1.6. ...

  3. shell方式切割tomcat日志

    #!/bin/bash while true do cd /usr/local/tomcat/logs d=`date +%Y%m%d` d15=`date -d'15 day ago' +%Y%m% ...

  4. shell脚本切割tomcat的日志文件

    鉴于在调试logback和log4j的文件切割一直无法成功,随性用shell写个脚本用来切割tomcat下的日志文件(大家如果有在logback或log4j使用文件切割成功的话,可以留下使用方式,先谢 ...

  5. tomcat日志切割和定期删除(转载)

    tomcat日志切割和定期删除 在tomcat的软件环境中,如果我们任由日志文件无限增长,总有一天会将磁盘占满的(废话).特别是在日志文件增长速度很快的一些情况下,按日志切割日志文件并删除,就是一件很 ...

  6. centos记录uptime,tomcat日志切割,远程拷贝日志脚本

    1.uptime日志脚本(每天记录) #!/bin/sh dir=/tmp/uptime_log process=`ps -ef|grep $|grep -v "grep" |gr ...

  7. tomcat日志切割和定期删除

    tomcat日志切割和定期删除 在tomcat的软件环境中,如果我们任由日志文件无限增长,总有一天会将磁盘占满的(废话).特别是在日志文件增长速度很快的一些情况下,按日志切割日志文件并删除,就是一件很 ...

  8. tomcat日志切割脚本

    tomcat日志每俩小时切割的脚本如下(这是用定时任务来完成的,此方法无需重启tomcat): time=$(date +%H) end_time=`` a=$end_time BF_TIME=$(- ...

  9. cronolog切割apache和tomcat日志

    cronolog切割apache和tomcat日志 http://cronolog.org tar zxvf cronolog-1.6.2.tar.gzcd cronolog-1.6.2./confi ...

随机推荐

  1. ios中view的生命周期

  2. poj 2117 Electricity【点双连通求删除点后最多的bcc数】

    Electricity Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 4727   Accepted: 1561 Descr ...

  3. mongodb 在windows上安装为服务

    // mongo 也是先安装扩展 在安装为服务 首先 先下载mongodb的压缩包 解压(一个bin文件夹 三个文件) 在目录下 新建立一文件夹 mongodb 然后将解压的内容放进去 然后在mong ...

  4. php错误级别

    E_ERROR 致命的运行错误.错误无法恢复,暂停执行脚本. E_WARNING 运行时警告(非致命性错误).非致命的运行错误,脚本执行不会停止. E_PARSE 编译时解析错误.解析错误只由分析器产 ...

  5. NPIV介绍

    我们知道在存储区域网络(SAN:storage area network),主机(Host)能够访问后端存储(比如CLARiiON,VNX)必备的一个前提是主机必须配备HBA卡(Host Bus Ad ...

  6. Kinect开发学习笔记之(一)Kinect介绍和应用

    Kinect开发学习笔记之(一)Kinect介绍和应用 zouxy09@qq.com http://blog.csdn.net/zouxy09 一.Kinect简单介绍 Kinectfor Xbox ...

  7. Free Editor

    Mars Nov 19, 2014

  8. mysqldump备份原理6

    写在前面:我们在使用mysqldump备份数据时,请一定记住要加上 -q 参数,后果可能是很严重的,不要给自己挖坑哦.到底为什么呢,且听我慢慢道来! 先来看看 mysqldump –help 中,关于 ...

  9. Q_INIT_RESOURCE宏

      QT应用程序,无论是exe,staticlib,还是dll程序,都可以通过qrc文件来导入各种资源. qrc会将这些资源文件转换为相应代码,参与应用程序的编译. 这样做的好处就是:简化了应用程序发 ...

  10. WPF柱状图(支持数据库动态更新)之组件的数据动态化

    WPF柱状图(支持数据库动态更新) 在这片文章中我们介绍了如何将柱状图包装成一个组件,将这个组件的属性对外开放和组件的外部属性根内部属性绑定以及非轮询动态更新数据的方式. 非轮询更新数据感觉介绍的不够 ...