Spring Boot 嵌入式 tomcat 日志

新手上路,请多包涵

我正在使用带有 spring boot 1.5.9 的 spring boot 嵌入式 tomcat,我也使用 Log4j2。

最近我在加载过程中遇到问题,所以我想更好地理解 tomcat 日志 [不是访问日志],我尝试过(在 application.properties 中):

 logging.level.org.apache.tomcat: INFO
logging.level.org.apache.catalina: INFO

但以上都没有奏效。还有其他方法可以实现吗?

原文由 Robocide 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.4k
2 个回答

找到了 !!您现在可以通过 3 个简单的步骤在应用程序的 Log4j 日志文件中查看 Embedded Tomcat 的内部日志:

1]添加到你的pom:

  <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-jul</artifactId>
     </dependency>

2] 将新的 JVM 参数添加到您正在运行的 arg 中,例如:

 java -Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager -jar target/demo-0.0.1-SNAPSHOT.jar

3]添加到您的application.properties:

 logging.level.org.apache=DEBUG

享受生活! :)

说明 问题是因为 Log4j 日志级别没有传播到 JUL(这是嵌入式 tomcat 使用的实际 Logging 方式)所以上面实现了与 JUL 和 Log4j 日志级别的这种连接。

参考: 在阅读了 Spring boot 1.5.10 发行说明(解决方案不需要)之后,我看到了阐明如何实现它并解释它的新文档:

https://github.com/spring-projects/spring-boot/issues/2923#issuecomment-358451260

原文由 Robocide 发布,翻译遵循 CC BY-SA 4.0 许可协议

我挣扎了很多,并没有找到任何帮助。最终我已经从我的 Spring Boot 应用程序中构建了“WAR”。将它部署到 tomcat 实例并按照以下步骤操作,将所有内部 tomcat 日志(JULI)日志重定向到我的应用程序日志文件。

  1. 删除现有的 JULI 库(CATALINA_HOME/bin/tomcat-juli.jar 文件)和现有的 Tomcat Java Logging 配置文件(CATALINA_HOME/conf/logging.properties)。

  2. 从 Tomcat 下载的 Extras 部分 ( http://tomcat.apache.org/download-70.cgi ) 下载 JULI Log4j Tomcat 库 (tomcat-juli.jar)。将下载的文件放到 CATALINA_HOME/bin 目录下。

  3. 从 Tomcat 下载的 Extras 部分下载 Tomcat JULI 适配器库 (tomcat-juli-adapters.jar)。将此文件放在 CATALINA_HOME/lib 目录中。

  4. 下载 Log4j(1.2 或更高版本),并将下载的库文件放在 CATALINA_HOME/lib 目录下。

  5. 在以下位置创建 Log4j 配置文件:CATALINA_HOME/lib/log4j.properties。检查以下与默认 Java Logging 配置匹配的 log4j 配置。

  6. 重新启动 Tomcat。

与默认 Tomcat 日志记录设置匹配的 Log4j 配置文件:

 log4j.rootLogger=INFO, CATALINA
//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

您还可以检查 GIT @ 链接 上可用的适配器

在您的 Spring Boot 应用程序中,您可以进行更改,例如添加和删除 jars、嵌入式 Tomcat 服务器中的文件夹,甚至使用 Spring Boot 的 TomcatEmbeddedServletContainerFactory.class 向其 添加自定义配置文件。

原文由 Mahesh_Loya 发布,翻译遵循 CC BY-SA 4.0 许可协议

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