Tomcat日志输出到了Localhost,但是在Catalina中没有

项目是在Tomcat下运行的,项目启动的时候可以在Catalina中看到启动日志,在程序中的错误日志,没有输出到Catalina.out文件中,但是输出到了localhost.2021.11.05.log日志文件中。

  • Java项目部署在Tomcat下
  • 启动可以在Catalina.out中看到启动日志
  • 异常信息没有在Catalina.out中输出
  • 但是异常信息在localhost.xxxx.xx.xx.log中输出了

配置的log4j.properties如下

log4j.rootLogger=INFO,console,logfile

log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%p] %c#%M %x: %m%n

log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.Encoding=UTF-8
log4j.appender.logfile.File=logs/123.log
log4j.appender.logfile.MaxFileSize=10MB
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %F %p %m%n


log4j.logger.com.ibatis=DEBUG 
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG 
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG 
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG 
log4j.logger.java.sql.Connection=DEBUG 
log4j.logger.java.sql.Statement=DEBUG 
log4j.logger.java.sql.PreparedStatement=DEBUG

补充:
当我把日志级别调成DEBUG之后,异常信息才能输出到Catalina.out中,这不应该啊。

修改后的配置文件:

log4j.rootLogger=DEBUG,console

log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%p] %c#%M %x: %m%n

log4j.logger.com.ibatis=DEBUG 
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG 
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG 
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG 
log4j.logger.java.sql.Connection=DEBUG 
log4j.logger.java.sql.Statement=DEBUG 
log4j.logger.java.sql.PreparedStatement=DEBUG

异常信息如下:
image.png

阅读 5.2k
1 个回答

localhost 部分是tomcat自己的日志,或者是servlet后端程序没处理的异常,tomcat处理时打的,才会出现在localhost.log里

而catalina.out 是std out,也就是 Console Log

盲猜一下:你应该是debug输出了这个异常日志,同时抛了异常被spring处理了,所以打在localhost里了,但由于你全局level 是info,所以没输出到 std out。

在全局level改成debug之后,这个异常日志就可以通过你的std out输出了,但localhost.out应该也有一份

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题