`

禁止向catalina.out写入日志文件

 
阅读更多


catalina.out与按天的catalina.xxxx.log重复,屏蔽catalina.out的方法

修改tomcat/conf/logging.properties

1catalina.org.apache.juli.FileHandler.level = FINE

1catalina.org.apache.juli.FileHandler.directory = 日志目录

1catalina.org.apache.juli.FileHandler.prefix = catalina.

 

2localhost.org.apache.juli.FileHandler.level = FINE

2localhost.org.apache.juli.FileHandler.directory = 日志目录

2localhost.org.apache.juli.FileHandler.prefix = localhost.

3manager.org.apache.juli.FileHandler.level = FINE
3manager.org.apache.juli.FileHandler.directory = 日志目录
3manager.org.apache.juli.FileHandler.prefix = manager.

4host-manager.org.apache.juli.FileHandler.level = FINE
4host-manager.org.apache.juli.FileHandler.directory = 日志目录
4host-manager.org.apache.juli.FileHandler.prefix = host-manager.

#日志目录默认是:#${catalina.base}/logs

java.util.logging.ConsoleHandler.level = OFF #关掉
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

重启之后生效

版本:Centos7,Tomcat8

 

Tomcat使用Log4j输出catalina.out日志

Tomcat默认的日志是用java.util.logging,有几点不足,文件catalian.out不能像log4j一样按天生成,将越来越大。日志格式和项目中用log4j打出来的不一致,不利于解析。

从tomcat官网(https://tomcat.apache.org/tomcat-7.0-doc/logging.html)上找了下,修改一些配置、替换扩展包即可使用log4j输出catalian.out。

在$CATALINA_BASE/lib下创建log4j.properties文件

log4j.properties的内容如下:

[html] view plain copy
 
  1. log4j.rootLogger = INFO, CATALINA  
  2.   
  3. # Define all the appenders  
  4. log4j.appender.CATALINA = org.apache.log4j.DailyRollingFileAppender  
  5. log4j.appender.CATALINA.File = ${catalina.base}/logs/catalina.out  
  6. log4j.appender.CATALINA.Append = true  
  7. log4j.appender.CATALINA.Encoding = UTF-8  
  8. # Roll-over the log once per day  
  9. log4j.appender.CATALINA.DatePattern = '.'yyyy-MM-dd  
  10. log4j.appender.CATALINA.layout = org.apache.log4j.PatternLayout  
  11. #log4j.appender.CATALINA.layout.ConversionPattern = %d [%t] %-5p %c- %m%n  
  12. log4j.appender.CATALINA.layout.ConversionPattern =%d{yyyy-MM-dd HH:mm:ss.SSS} %p [%t] %c | %m%n  
  13.   
  14. # configure customed log to catalina.out  
  15. log4j.logger.com.xxxxx = WARN, CATALINA  
  16. log4j.logger.org.apache = WARN, CATALINA  
  17. log4j.logger.org.mybatis = WARN, CATALINA  
  18. log4j.logger.java.sql = WARN, CATALINA  
  19. log4j.logger.org.springframework = WARN, CATALINA  

 

更新tomcat相关jar包

下载log4j-1.2.17.jar(http://www.apache.org/dist/logging/log4j/1.2.17/

下载tomcat7的2个jar包:tomcat-juli.jar 和 tomcat-juli-adapters.jar(http://www.apache.org/dist/tomcat/tomcat-7/v7.0.69/bin/extras/ 最好和tomcat版本对应)

把log4j-1.2.17.jar和tomcat-juli-adapters.jar放到$CATALINA_HOME/lib下;用新下载的tomcat-juli.jar包替换掉$CATALINA_HOME/bin/tomcat-juli.jar包。

删除$CATALINA_BASE/conf/logging.properties。
重启tomcat
关于默认的catalina日志格式

如果只想修改tomcat默认的日志格式,替换掉默认的java.util.logging.SimpleFormatter即可。SimpleFormatter类里format格式为LoggingSupport.getSimpleFormat(),它的具体值是:"%1$tb %1$td, %1$tY %1$tl:%1$tM:%1$tS %1$Tp %2$s%n%4$s: %5$s%6$s%n",其中时间格式可能不是我们期望的,还有里面有个换行%n。比如想改为类似上面log4j的时间格式,可自己重写一个替换类(com.xxx.LogFormatter),format设为"%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS.%1$tL %4$s %2$s %5$s%6$s%n"。修改$CATALINA_BASE/conf/logging.properties

[html] view plain copy
 
  1. java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter  

改为如下:

[html] view plain copy
 
  1. java.util.logging.ConsoleHandler.formatter = com.xxx.LogFormatter  
  2. org.apache.juli.FileHandler.formatter = com.xxx.LogFormatter  
分享到:
评论

相关推荐

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

    这通常是由于字符编码不匹配导致的,因为Tomcat在读取或写入日志时,使用的编码与日志内容的实际编码不一致。 描述中提到的“部署到Linux服务器后,控制台catalina.out文件输出的中文为乱码”,这暗示了问题可能与...

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

    这个配置中,`RollingFileAppender`定义了日志写入到`logs/catalina.log`文件,并使用`TimeBasedRollingPolicy`按日期进行滚动,每天生成一个新的日志文件,最多保留30天的历史日志。`encoder`部分则设置了日志的...

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

    这样,cronolog会将新的日志条目写入到当天的文件,如`catalina-20230401.out`,并在每天开始时创建新的文件。 为了使这个脚本生效,你需要给予其执行权限并将其添加到cron计划任务中。这通常通过`crontab -e`命令...

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

    通过配置cronolog,我们可以在每个小时结束时自动创建一个新的日志文件,将当前小时的`catalina.out`日志内容写入新的文件,而旧的文件则保留下来。这样做不仅提高了日志管理的效率,也有利于保持系统的稳定性和资源...

    Logrotate实现Catalina.out日志每俩小时切割示例

    针对Java应用程序,如Tomcat,Catalina.out日志文件通常会积累大量的运行信息,因此定期切割对于保持系统性能和监控至关重要。以下将详细介绍如何使用Logrotate实现每两小时切割Catalina.out日志。 一、Logrotate...

    解决Tomcat 中catalina.out持续累加问题

    随着应用程序的运行,Tomcat会产生大量的日志信息,这些信息会被写入到一个名为catalina.out的文件中。catalina.out文件是一个关键的日志文件,通常用于诊断和监控应用服务器的状态。然而,随着时间的推移,catalina...

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

    然后定义一个新的appender,如`APP`,指定其写入另一个日志文件,以便与`catalina.out`区分。 总之,通过Log4j对`catalina.out`进行日志分割,不仅可以实现日志的自动滚动,还可以定制日志级别、格式和存储位置,极...

    分割Tomcat日志

    随着应用程序的运行时间增加,Tomcat的日志文件(通常为`catalina.out`)会不断增大,这不仅会占用大量的磁盘空间,而且也不利于日志的查看与分析。特别是在高并发场景下,频繁的日志写入操作可能会导致性能瓶颈,...

    Tomcat日志控制脚本

    对于Apache Tomcat服务器而言,其默认的日志文件(如`catalina.out`)在长时间运行后会变得非常庞大,这不仅占用了大量的磁盘空间,还可能影响系统的性能,尤其是当服务器试图读取或写入这些大型文件时。因此,实现...

    日志切割软件

    3. **重定向Tomcat日志输出**:修改Tomcat的`conf/logging.properties`配置文件,将原本写入`catalina.out`的日志重定向到由`cronolog`管理的路径,如`1>/dev/null | /usr/sbin/cronolog /var/log/tomcat/catalina....

    cronolog-1.6.2.tar.gz

    通过以上步骤,我们可以有效地解决`catalina.out`日志文件过大的问题,同时保证日志的有序管理和查询。cronolog的使用不仅限于Tomcat,也可以应用于其他需要日志管理的服务或应用。正确配置和使用cronolog对于维护...

    日志分隔工具 Cronolog 下载

    默认情况下,tomcat的catalina.out日志文件是没有像其它日志一样,按日期进行分割,而是全部输出全部写入到一个catalina.out,这样日积月累就会造成.out日志越来越大,给管理造成了不便,为了实现像其它日志文件一样...

    tomcat日志分隔配置手册.zip

    这行命令表示每天0点(即凌晨12点)执行一次cronolog,将新的日志写入`/var/log/tomcat/catalina.out`,并按日期滚动到`/var/log/tomcat/catalina.YYYYMMDD.log`文件。 通过这样的配置,你可以有效地管理Tomcat的...

    tomcat cronolog日志分隔.zip

    使用cronolog,你可以设置一个规则,比如每天零点将当天的日志写入新的文件,之前的日志则保留为历史记录。这样既保持了日志的可读性,也便于根据日期查找特定时间段的问题。 以下是使用cronolog来分隔Tomcat日志的...

    cronolog-tomcat日志切割

    默认情况下,tomcat的catalina.out日志文件是没有像其它日志一样,按日期进行分割,而是全部输出全部写入到一个catalina.out,这样日积月累就会造成.out日志越来越大,给管理造成了不便,为了实现像其它日志文件一样...

    cronlog.16.2.rar

    tomcat的catalina.out日志文件是没有像其它日志一样,按日期进行分割,而是全部输出全部写入到一个catalina.out,这样日积月累就会造成.out日志越来越大,给管理造成了不便,为了实现像其它日志文件一样按日期归档,...

    Tomcat 日志切割(logrotate)详细介绍

    执行后,原始的日志文件会被重命名为`catalina.out-20150828.gz`并压缩,同时创建一个新的空的日志文件`catalina.out`供Tomcat继续写入。 除了手动执行`logrotate`命令,通常logrotate会作为系统cron任务的一部分...

    Centos7配置logrotate执行Tomcat日志轮转

    使用`vim`编辑器写入日志文件的路径,例如`/home/odysee/General/tomcat8.5/logs/catalina.out`。 2. 设置参数:在配置文件中,定义日志轮转的具体策略。例如,`daily`表示每天轮转一次,`rotate 30`表示保留30天的...

    cronolog-1.6.2_0.zip

    cronolog 正是执行这一任务的工具,它能够根据时间戳动态重定向标准输出,将不同时间段的日志内容分别写入不同的文件中,从而实现日志的自动分割。 使用 cronolog,你可以在 Tomcat 的配置文件中(通常为 `catalina...

    Linux下定时切割Tomcat日志并删除指定天数前的日志记录

    这将确保每次启动Tomcat时,新的日志会被写入到以日期命名的文件中。 切割日志的同时,也需要定期清理旧的日志文件,以保持磁盘空间的合理利用。在Linux中,可以使用`find`命令配合`rm`命令实现这个功能。例如,要...

Global site tag (gtag.js) - Google Analytics