java 忽略Sping Boot 日志记录.file,从类路径中获取logback-test.xml

shyt4zoc  于 2022-12-17  发布在  Java
关注(0)|答案(1)|浏览(114)

当我们把spring Boot 2.7应用程序部署到生产环境中时,它在阅读正确的日志配置时遇到了问题,它没有使用prod配置文件中的配置文件,而是从类路径中选择了一个与测试相关的资源。

$ java -Dspring.profiles.active=prod service.jar
service.jar!/BOOT-INF/classes!/logback-test.xml]
12:13:29,834 |-INFO in ch.qos.logback.core.joran.spi.ConfigurationWatchList@23ab930d - URL [jar:file:/home/x/service.jar!/BOOT-INF/classes!/logback-test.xml] is not of type file
12:13:29,865 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - debug attribute not set

应用程序-产品yml

logging:
  config: /home/x/service/config/logback-prod.xml

jar在类路径中包含这些文件(log4j不应该在那里,我们删除了这个依赖项,并且我们依赖于默认的SLF 4J):

$ ls log*
log4j2.xml log4j2-prod.xml log4j2-test.xml logback.xml logback-prod.xml logback-test.xml

应用程序正在使用除logging.config选项之外的生产配置文件。为什么?

dgiusagp

dgiusagp1#

解决方案是从构建中删除日志配置文件,因为Spring总是读取这些文件。

<resources>
        <resource>
            <directory>src/main/resources</directory>
            <excludes>
                <exclude>log*xml</exclude>
            </excludes>
        </resource>
    </resources>

相关问题