tomcat在启动时,总以error级别输出日志的解决方案

tomcat在启动的时候,不管什么级别的日志,总是会以error级别输出,红殃殃的一大片,不方便调试,如下:


大部分解决方案都是删除server.xml中的如下配置项:


这样治标不治本,只是上图中的日志不再显示了而已。如果遇到其他一些级别的日志,还是会以error来输出。

最后,在tomcat官网找到一种解决方式,就是将tomcat的日志输出替换为log4j日志系统来输出(官网文档),可以准确输出各种级别的日志,具体步骤如下:

1.下载扩展jar
  • log4j-1.2.17.jar (v1.2.x)
  • tomcat-juli.jar
  • tomcat-juli-adapters.jar

将log4j和tomcat-juli-adapters这两个包放置tomcat的lib下,将tomcat-juli放置tomcat的bin下,存在相同的jar包则替换。

2.创建配置文件

创建log4j.properties文件,放置tomcat的lib下,文件内容如下,可根据需要自己修改:

log4j.rootLogger=INFO, CATALINA,CONSOLE

# Define all the appenders
log4j.appender.CATALINA=org.apache.log4j.DailyRollingFileAppender
log4j.appender.CATALINA.File=${catalina.base}/logs/catalina.
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'.log'
log4j.appender.CATALINA.layout = org.apache.log4j.PatternLayout
log4j.appender.CATALINA.layout.ConversionPattern = %d [%t] %-5p %c- %m%n

log4j.appender.LOCALHOST=org.apache.log4j.DailyRollingFileAppender
log4j.appender.LOCALHOST.File=${catalina.base}/logs/localhost.
log4j.appender.LOCALHOST.Append=true
log4j.appender.LOCALHOST.Encoding=UTF-8
log4j.appender.LOCALHOST.DatePattern='.'yyyy-MM-dd'.log'
log4j.appender.LOCALHOST.layout = org.apache.log4j.PatternLayout
log4j.appender.LOCALHOST.layout.ConversionPattern = %d [%t] %-5p %c- %m%n

log4j.appender.MANAGER=org.apache.log4j.DailyRollingFileAppender
log4j.appender.MANAGER.File=${catalina.base}/logs/manager.
log4j.appender.MANAGER.Append=true
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.HOST-MANAGER=org.apache.log4j.DailyRollingFileAppender
log4j.appender.HOST-MANAGER.File=${catalina.base}/logs/host-manager.
log4j.appender.HOST-MANAGER.Append=true
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.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

# Configure which loggers log to which appenders
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
3.删除原有的日志配置文件

删除tomcat的conf下的logging.properties文件

经过以上步骤,基本上就替换完成了,效果如下


可以看到tomcat已经按照我们想要的配置进行输出日志了,而且可以看到日志的级别,大大方便了我们开发调试。

你可能感兴趣的:(tomcat在启动时,总以error级别输出日志的解决方案)