java - 在 tomcat 上部署时,logback-spring.xml 不起作用

标签 java spring tomcat logging

我已经使用 Java 8 创建了 spring boot 项目,并且我正在使用外部 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>

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

最佳答案

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

一个 logback 文件只能有这 3 个允许的名称中的 1 个:

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

只要您将文件名更改为上述名称之一,logback 配置就会开始使用部署在 Tomcat 上的 war 包。

关于java - 在 tomcat 上部署时,logback-spring.xml 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43908669/

相关文章:

tomcat - Mura 设置不显示 Mura 管理页面,而是显示 Lucee 欢迎页面

java - 有没有一种简单的方法可以使用 Apache Web 服务器运行 Java servlet?

java - Ant 说未设置JAVA_HOME,但是$ JAVA_HOME显示在Bash中。

java - Java中同步关键字的使用

java - 访问修饰符 protected

spring-mvc - 将 Spring Boot 应用程序部署到 AWS beanstalk

java - 向主线程发送线程错误信号

Spring 获取实体的链接

javascript - 如何使用spring表单标签在onchange事件中调用javascript函数?

spring - 单元测试 Spring @Around AOP 方法