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:
- log4j.rootLogger = INFO , CATALINA
- # Define all the appenders
- log4j.appender.CATALINA = org .apache.log4j.DailyRollingFileAppender
- log4j.appender.CATALINA.File = ${catalina.base}/logs/catalina.out
- log4j.appender.CATALINA.Append = true
- log4j.appender.CATALINA.Encoding = UTF-8
- # Roll-over the log once per day
- log4j.appender.CATALINA.DatePattern = '.'yyyy-MM-dd
- log4j.appender.CATALINA.layout = org.apache.log4j.PatternLayout
- #log4j.appender.CATALINA.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
- log4j.appender.CATALINA.layout.ConversionPattern =%d{yyyy-MM-dd HH:mm:ss.SSS} %p [%t] %c | %m%n
- # configure customed log to catalina.out
- log4j.logger.com.xxxxx = WARN, CATALINA
- log4j.logger.org.apache = WARN, CATALINA
- log4j.logger.org.mybatis = WARN, CATALINA
- log4j.logger.java.sql = WARN, CATALINA
- 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
- java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
改为如下:
- java.util.logging.ConsoleHandler.formatter = com.xxx.LogFormatter
- org.apache.juli.FileHandler.formatter = com.xxx.LogFormatter