logback-spring.xml 在 Tomcat 上部署时不起作用



我用Java 8创建了spring启动项目,我正在使用外部Tomcat容器进行部署。我有如下logbakc-spring.xml

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
        <level>INFO</level>
    </filter>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>${LOG_PATH}/log/hfxn.%d{yyyy-MM-dd}.log</fileNamePattern>
    <maxHistory>90</maxHistory>
    </rollingPolicy>
    <encoder>
        <charset>utf-8</charset>
        <Pattern>%d %-5level [%thread] %logger{0}: %msg%n</Pattern>
    </encoder>
</appender>

但是,当我构建战争并在 Tomcat 上部署时,我在指定的路径中找不到日志文件,而且我不知道为什么?

如果您的项目与 spring-boot 兼容,则名为 logback-spring.xml 的 logback 文件运行良好,但是当您将项目作为 war 部署到 tomcat 中时,由于在 logback 文件上命名约束,因此不会选取此文件。

一个登录文件只能有以下 3 个允许的名称中的 1 个:

  • logback-test.xml
  • logback.groovy
  • logback.xml

一旦您将文件名更改为上述名称之一,logback 配置将开始使用通过 Tomcat 部署的 war 包。

您是否看到在控制台消息中找到的登录文件? 尝试将文件命名为 logback.xml,这是它在启动时搜索的标准登录名称。 此外,请确保文件位于 jar 中的顶层,而不是嵌套在子目录中。

最新更新