Suppress log file writing to catalina.out


catalina.out is repeated with catalina.xxxx.log by day, the method of shielding catalina.out

Modify tomcat/conf/ logging.properties

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

1catalina.org.apache.juli.FileHandler.directory = log directory

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

 

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

2localhost.org.apache.juli.FileHandler.directory = log 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.

#The default log directory is: #${catalina.base}/logs

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

Take effect after restart

Version: Centos7,Tomcat8

 

Tomcat uses Log4j to output catalina.out logs

The default log of Tomcat is java.util.logging. There are several shortcomings. The file catalytic.out cannot be generated on a daily basis like log4j, and will become larger and larger. The log format is inconsistent with the log4j in the project, which is not conducive to parsing.

Find it from the tomcat official website (https://tomcat.apache.org/tomcat-7.0-doc/logging.html), modify some configurations, and replace the extension package to use log4j to output catalian.out.

Create log4j.properties file under $CATALINA_BASE/lib

The contents of log4j.properties are as follows:

[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  

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326078472&siteId=291194637