当前位置: 首页 > 知识库问答 >
问题:

部署为时的Spring Boot日志记录配置。战争

缪坚诚
2023-03-14

我有一个简单的spring boot应用程序打包为。能够部署到外部Tomcat容器的war文件。我有一个日志。但是,当部署到Tomcat时,日志不会写入文件。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/base.xml"/>
    <logger name="org.springframework.web" level="DEBUG"/>
</configuration>

共有1个答案

孔厉刚
2023-03-14

我一直在努力解决同样的问题——通过单元测试和运行应用程序“main()”方法,日志记录可以正常工作,但在tomcat中,它完全忽略了我的配置。

事实证明,在启动时,tomcat会设置一个环境变量“LOGGING_CONFIG”来描述其“LOGGING”的位置。属性的文件。这可以在tomcat/bin/catalina中看到。sh或(.bat)。

Spring Boot还可以在启动时读取环境,作为智能配置处理的一部分,我相信它可以将LOGGING_CONFIG转换为“LOGGING”。config',这是一个允许您覆盖其“日志记录配置”位置的属性。

问题是,它随后试图将该值作为文件名处理并加载它(它实际上不是文件名,而是描述文件的Java系统属性),但它失败了,没有正确初始化其日志记录,并在默认情况下继续使用Tomcat的任何设置。

解决方案似乎是确保先设置环境变量,例如(您的IDE应该有这样一个选项——在Intellij中运行)-

set logging.config=classpath:/logback.xml

Spring Boot将优先使用它,而不是从Tomcat记录_CONFIG,并将按预期工作。

然而,到目前为止,我还无法在像application.properties这样的配置文件中实现这一点,这意味着这是部署到Tomcat实例的所有应用程序的全局设置。

编辑:这将是由于环境变量重写本地配置的事实,这在其他情况下,但这将是你想要的:-(

编辑2:我可以确认,从Spring Boot 1.1.6开始,这个问题已经解决了——它作为警告记录,并将继续使用现有的(正确的)日志配置。遗憾的是,您不能在logback.xml文件中禁用警告消息本身。

 类似资料:
  • 每当我部署一个外部化配置有错误的生产应用程序时,我都会在Tomcat日志中收到以下消息: 显然,外部化的配置是在log4j被正确初始化之前处理的,因此没有附加程序可以接受来自的消息。 有没有办法预先初始化log4j,以便在标准Grails log4j初始化发生之前捕获这些消息?

  • 我使用的是JBoss7,因为我在这个JBoss中部署的ear很少。StandalOne.xml已经使用以下日志记录配置进行了配置 然后我尝试将logging.properties文件添加到一个ear META-INF中,结果如预期的那样。再次,我想从那个logging.properties文件(我已经将其放置到ear之一的META-INF中)引用一个处理程序(在stanalone.xml中定义的M

  • 我有一个启动应用程序,部署到一个外部tomcat服务器,一切工作在我的本地与本地数据库。现在,我必须将代码推广到数据库配置不同的更高环境。我读了很多关于配置文件的etc...,但是当它是一个外部tomcat并且不使用

  • 目前,我正在与 log4j2.7 springframework 4.3。5; 冬眠5.2。三, 我通过一个xml文件配置log4j 为此,我创建了一些appender,其中一个名为“General”。我需要的是,所有日志都必须转到该appender(包括springframework或hibernate生成的日志),并且后者都不会打印在控制台上(我仍然需要其他类中的其他日志) 我试着写这些日志:

  • 问题内容: 如何配置OpenEJB日志记录格式?这就是我现在在日志中看到的内容: 我想禁用消息,并更改其他消息的格式。中的更改无效。 问题答案: 这是我为使事情正常运行所做的工作: 现在工作正常。这是我的: 这是: 现在,由于大卫的支持,我可以在测试期间微调OpenEJB的日志记录:)

  • 我想按照这里的描述设置用于日志记录的Jetty-http://www.eclipse.org/jetty/documentation/current/configuring-jetty-request-logs.html 但上线过程以错误结束: 我的码头网。WEB-INF中的xml具有以下配置: 我做错了什么? 我用下一个命令编译并运行WAR文件: