春季启动战争log4j2

Posted

技术标签:

【中文标题】春季启动战争log4j2【英文标题】:spring boot war log4j2 【发布时间】:2016-10-27 00:43:04 【问题描述】:

我正在使用 spring boot 版本 1.3.5(spring 4.2.6)开发应用程序。 我使用 log4j2 版本 2.4.1 作为日志系统。 在 sts(spring 工具套件)上工作并在嵌入式 tomcat 上执行时,日志工作正常(在控制台和文件上)但是当构建一个 war 文件并将其部署在外部 tomcat 8 上时,会创建日志文件但我的日志没有出现在里面。

我已经寻找过类似的问题并测试了一些解决方案:

    在 tomcat 上设置 logging.config 属性 使用参数 logging.config=classpath:log4j2-spring.xml 配置“application.properties”文件 使用另一个日志框架 (logback)

但是这个解决方案都不起作用。 谈到这一点的帖子是: Spring-Boot Logging configuration when deployed as .war

请提供任何帮助或详细答案。

【问题讨论】:

看看war文件里面是不是WEB-INF/classes下的log4j2.xml? 【参考方案1】:

如果您想在 Tomcat 中为 Spring Boot 应用程序配置 log4j,此文档可能会对您有所帮助:

https://tomcat.apache.org/tomcat-8.5-doc/logging.html#Using_Log4j

使用 Log4j

本节说明如何配置 Tomcat 以使用 log4j 而不是 java.util.logging 用于所有 Tomcat 的内部日志记录。

注意:当您想要 重新配置 Tomcat 以使用 Apache log4j 进行自己的日志记录。这些 如果您只想在自己的 Web 中使用 log4j,则不需要步骤 应用。 — 在这种情况下,只需输入 log4j.jarlog4j.properties 变成你的 WEB-INF/libWEB-INF/classes 网络应用程序。

以下步骤描述了配置 log4j 以输出 Tomcat 的 内部日志记录。

创建一个名为log4j.properties 的文件,其内容如下: 保存到$CATALINA_BASE/lib

【讨论】:

我不想将 log4j 配置为 tomcat 的日志系统,但我希望它成为我的 Spring Boot 的应用程序日志系统。

以上是关于春季启动战争log4j2的主要内容,如果未能解决你的问题,请参考以下文章

在同一场战争中防止春季会话覆盖

IndexOutOfBoundsException 春季批处理和春季启动

春季启动批处理到具有多个作业的春季云任务

如何在春季安全中IP白名单/oauth/check_token端点

春季启动 DispatcherServlet

春季启动 JSON 响应