tomcat在啟動的時候,不管什么級別的日志,總是會以error級別輸出,紅殃殃的一大片,不方便調(diào)試,如下:

大部分解決方案都是刪除server.xml中的如下配置項:
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
這樣治標(biāo)不治本,只是上圖中的日志不再顯示了而已。如果遇到其他一些級別的日志,還是會以error來輸出。
最后,在tomcat官網(wǎng)找到一種解決方式,就是將tomcat的日志輸出替換為log4j日志系統(tǒng)來輸出(官網(wǎng)文檔),可以準(zhǔn)確輸出各種級別的日志,具體步驟如下:
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.創(chuàng)建配置文件
創(chuàng)建log4j.properties文件,放置tomcat的lib下,文件內(nèi)容如下,可根據(jù)需要自己修改:
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文件
經(jīng)過以上步驟,基本上就替換完成了,效果如下

可以看到tomcat已經(jīng)按照我們想要的配置進行輸出日志了,而且可以看到日志的級別,大大方便了我們開發(fā)調(diào)試。