`

Catalina.out日志分割(Tomcat 7.0.69)

阅读更多
     项目业务原因, catalina.out每天增长几近1个G, 先不说磁盘空间的占用, 排查日志时, 几个GB, 甚至几十个GB的文件打开都是个问题, 实在无可忍耐. 搜索一番, 无非2种方案:
1、用log4j接管tomcat的日志输出; 2、用cronolog来分隔. 个人偏向第一种, 无他, 因其简单, 且涉及几率问题, 改动的地方少, 改动得越少, 出错的几率越少, 最重要的是log4j更加熟悉, 也就是说更好维护, so, why not.
   ok, 开动.
   step 1:
      需要为tomcat添加3个jar包, 分别为log4j-1.2.9.jar、tomcat-juli.jar、tomcat-juli-adapters.jar. 第一个jar无需多说, 只需稍微在网上找一下就能搜索出一大堆, 后面那2个jar, 可以在tomcat的官网上找得到, 下载的时候需要注意tomcat版本:http://www.apache.org/dist/tomcat/tomcat-7/v7.0.69/bin/extras/. 看到下载地址中的extras没, 意思是说这个2个jar包不是在tomcat底下, 需要额外添加.
   step 2:
       把上面3个jar包拷贝到/opt/tomcat/lib目录下(新下载的tomcat在这个lib目录下是不会有这3个jar包的, 其他不敢说, 但是7.0.69这个版本是绝对没有的).
   step 3:
       修改context.xml中的<Context>节点, 为它增加一个属性swallowOutput, 并将其值为true,最终变成这样<Context swallowOutput="true">. 这个属性很关键, 只有这样才能彻底抛弃tomcat的stdout. 嗯, 顺便解析下这个属性: 如果该值为true,System.out和System.err的输出被重定向到web应用的logger; 如果没有指定,缺省值为false.
   step 4:
       好了, 到了这一步, 该为log4j定义一个日志输出的配置, 嗯, 就叫log4j.properties好了. 等等, 这个文件的名字还真不能胡改, 它名字必须是这个, 不然还需要改点别的东西, 至于改啥, 就不说了. 配置好了之后, 把log4j.properties文件放到/opt/tomcat/lib目录下. 以下为log4j.properties的配置内容:
      
log4j.rootLogger = INFO, CONSOLE, CATALINA

log4j.logger.org.springframework.web.servlet.handler.SimpleUrlHandlerMapping = INFO
log4j.logger.org.springframework.beans.factory.xml.XmlBeanDefinitionReader = INFO
#log4j.logger.org.hibernate.cfg.annotations.EntityBinder = WARN
#log4j.logger.org.hibernate.cfg.AnnotationBinder = WARN
#log4j.logger.org.hibernate.cfg.annotations.CollectionBinder = WARN
  
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
log4j.logger.de.javakaffee.web.msm = ERROR
log4j.logger.org.apache.catalina.core = INFO, LOCALHOST
log4j.logger.org.apache.catalina.session = INFO, LOCALHOST
  
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
 
log4j.appender.CATALINA = org.apache.log4j.DailyRollingFileAppender
log4j.appender.CATALINA.file = ${catalina.base}/logs/catalina.
log4j.appender.CATALINA.encoding = UTF-8
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.CATALINA.append = true
 
log4j.appender.LOCALHOST = org.apache.log4j.DailyRollingFileAppender
log4j.appender.LOCALHOST.file = ${catalina.base}/logs/localhost.
log4j.appender.LOCALHOST.encoding = UTF-8
log4j.appender.LOCALHOST.datePattern = '.'yyyy-MM-dd'.log'
#log4j.appender.LOCALHOST.maxFileSize = 100MB
#log4j.appender.LOCALHOST.maxBackupIndex = 10
log4j.appender.LOCALHOST.layout = org.apache.log4j.PatternLayout
log4j.appender.LOCALHOST.layout.conversionPattern = %d [%t] %-5p %c - %m%n
log4j.appender.LOCALHOST.append = true
 
log4j.appender.MANAGER = org.apache.log4j.DailyRollingFileAppender
log4j.appender.MANAGER.file = ${catalina.base}/logs/manager.
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.MANAGER.append = true
 
log4j.appender.HOST-MANAGER = org.apache.log4j.DailyRollingFileAppender
log4j.appender.HOST-MANAGER.file = ${catalina.base}/logs/host-manager.
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.HOST-MANAGER.append = true       


       值得注意的是日志保存的文件名要保留"."号,否则不会分类.
   step 5:
      重命名/opt/tomcat/config/logging.properties, 变成/opt/tomcat/config/logging.properties.bak. 不建议删除, 万一以后要恢复呢
    step 6:
      重启服务, 然后晚上别关机, 第二天就可以看到好消息了. 好, 就这样.

      
分享到:
评论

相关推荐

    Linux tomcat下catalina.out日志文件分割

    Linux tomcat下catalina.out日志文件分割 前言: tomcat默认使用Java.util.logging记录日志,默认只记录tomcat的日志,不记录应用的日志。tomcat支持采用log4j进行日志记录,配置方法如下: 1.更新最新的tomcat_juli...

    catalina.out 日志分割

    ### 关于"catalina.out"日志文件及分割方法 #### 一、问题背景与重要性 在IT运维工作中,日志文件对于诊断系统错误、监控应用运行状态以及进行性能优化等方面发挥着至关重要的作用。然而,随着系统运行时间的增长...

    tomcat 下catalina.out 日志乱码问题处理

    标题中的“tomcat下catalina.out日志乱码问题处理”主要涉及的是在Tomcat服务器运行过程中,输出的日志文件`catalina.out`中,中文字符显示为乱码的状况。这通常是由于字符编码不匹配导致的,因为Tomcat在读取或写入...

    Tomcat使用Log4j输出catalina.out日志

    通过以上步骤,Tomcat服务器将使用Log4j来管理catalina.out日志,这不但解决了日志文件过大和格式不统一的问题,而且提供了更丰富的日志管理功能,例如,可以利用Log4j强大的过滤、路由和格式化等功能,将日志管理得...

    Tomcat输出catalina.out的大小控制

    这样,`catalina.out`将会按照设定的时间间隔自动分割并压缩,防止日志文件过大。 3. **调整应用日志级别** 另外,你可以通过调整应用中的日志级别来减少`catalina.out`的生成量。例如,如果应用使用了Log4j或...

    Catalina.out日志分割工具

    标题提及的"Catalina.out日志分割工具"就是专为Linux环境下Tomcat设计的一个解决方案。这个工具能够自动地将过大的`Catalina.out`文件切割成多个小文件,从而避免单个日志文件过大带来的问题。它通常包含一个脚本...

    Linux下tomcat日志catalina.out按天(/周)分割

    通过这样的脚本和定时任务,我们可以在Linux上的Tomcat环境中有效地管理和分割`catalina.out`日志,便于日后的检索和分析。这不仅可以节省存储空间,还可以帮助我们更好地跟踪和诊断Tomcat服务的运行状况。

    catalina.out日志查看工具

    "catalina.out"是Apache Tomcat服务器的标准输出日志文件,它记录了Tomcat启动、运行以及关闭过程中的所有信息,包括错误消息、警告、调试信息等。这个日志文件对开发者和系统管理员来说非常重要,因为它可以帮助...

    tomcat7修改catalina.out日志按天生成jar文件

    标题中的“tomcat7修改catalina.out日志按天生成jar文件”指的是在Tomcat 7这个流行的Java应用服务器中,对`catalina.out`日志文件进行配置,以便按照日期自动分割生成新的日志文件。这有助于管理日志,避免单个日志...

    windows下tomcat的catalina.out按天自动分割

    本文将详细介绍如何在Windows环境下,通过简单的配置使Tomcat的日志文件`catalina.out`能够按照日期进行自动分割。 #### 二、准备工作 在开始配置之前,需要确保已经安装了Tomcat,并且它能正常运行。此外,还需要...

    TOMCAT在LINUX下catalina.out文件分割

    例如,在`/etc/cron.d/tomcat-logrotate`中添加一行`0 0 * * * /usr/local/sbin/cronolog /path/to/tomcat/logs/catalina.%Y%m%d.out /path/to/tomcat/logs/catalina.out`,这将在每天0点创建一个格式为`catalina....

    Tomcat日志catalina.out过大解决方案--使用logback按日轮转.rar

    在Java Web应用开发中,Tomcat作为常用的Servlet容器,其默认的日志系统是通过`catalina.out`文件记录所有标准输出和错误输出。当应用运行一段时间后,`catalina.out`文件可能会变得非常大,占用大量磁盘空间,这...

    按天切割tomcat的catalina.out日志(附cronolog安装包)

    catalina.out是tomcat把stdout和stderr重定向到文件后生成的日志文件,其生成是不受logging.properties 或 log4j.properties配置文件所影响的,需要另行安装工具(如cronolog或rotatelogs之类)进行处理。...

    cronolog切割tomcat catalina.out 文件 tomcat日志按小时切割

    标题中的“cronolog切割tomcat catalina.out 文件 tomcat日志按小时切割”是指使用cronolog工具对Tomcat服务器的日志文件,特别是`catalina.out`文件进行按小时分割的实践方法。`catalina.out`是Tomcat默认的日志...

    tomcat下用Log4j 按文件大小,生成catalina.out日志文件

    在Tomcat中配置Log4j,可以实现按照文件大小生成日志文件,如`catalina.out`,从而避免单个日志文件过大导致的管理不便。 首先,我们需要理解Log4j的工作原理。Log4j主要包括三个核心组件:Logger(日志器)、...

    Tomcat下使用Log4j 接管 catalina.out 日志文件生成方式

    4. **启动Tomcat**:重新启动Tomcat,现在`catalina.out`将不再被更新,而是由Log4j根据`logging.properties`和`log4j.properties`的配置进行日志处理。 5. **调整日志级别**:在生产环境中,可能需要调整日志级别...

    tomcat配置catalina.out文件分割.pdf

    tomcat的catalina.out是tomcat的...越⼤,并且tomcat⾃身是没有带分割catalina.out的功能的。所有档如果某些需求需要导致我们查看 catalina.out⽂件的时候 会⽐较的苦恼。需要对tomcat的catalina.out⽂件进⾏分割

    使用cronolog工具切分Tomcat的catalina.out日志文件

    接下来,当Tomcat运行并产生日志时,`catalina.out`会被cronolog按照指定的时间间隔自动分割,生成新的文件。这样,你可以轻松地查看不同日期的日志,同时避免单个日志文件过大。 在实际操作中,你可能还需要考虑...

    tomcat catalina.out日志分离.7z

    tomcat日志 catalina.out分离 免去catalina,out过大的情况,并且查看日志方便,里面包含了食用方法和一个写好的catalina.sh文件 安装好cronolog后直接覆盖源文件

    详解关于tomcat切割catalina.out日志的三种方式

    Tomcat服务器在运行时会产生大量的日志信息,通常这些信息会被记录在catalina.out文件中。随着时间的推移,这个日志文件会变得越来越大,不仅占用大量的磁盘空间,而且会影响日志的读取效率。因此,对Tomcat的日志...

Global site tag (gtag.js) - Google Analytics