Spring Boot - 独立 Tomcat / 外部 logback 文件被忽略

Posted

技术标签:

【中文标题】Spring Boot - 独立 Tomcat / 外部 logback 文件被忽略【英文标题】:Spring Boot - Standalone Tomcat / External logback file ignored 【发布时间】:2016-07-29 15:16:11 【问题描述】:

我创建了一个版本为 1.2.8Spring Boot 应用程序,我在其中使用外部 Tomcat 容器进行部署。

在部署存档.jar 我有一个logback.xml,默认值如下:

<configuration scan="true">

    <include resource="org/springframework/boot/logging/logback/base.xml"/>

    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <charset>utf-8</charset>
            <Pattern>%dHH:mm:ss.SSS [%-4p] %-4c \n\t%m%n</Pattern>
        </encoder>
    </appender>

    <appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- rollover daily -->
            <fileNamePattern>$user.dir/logs/app-%dyyyy-MM-dd.%i.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy
                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <!-- or whenever the file size reaches 100MB -->
                <maxFileSize>5MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <maxHistory>10</maxHistory>
        </rollingPolicy>

        <encoder>
            <charset>UTF-8</charset>
            <pattern>%dyyyy-MM-dd HH:mm:ss.SSS - [%-30logger0] - [%-5p] -%XtraceInfo \n\t%m%n</pattern>
        </encoder>
    </appender>

    <root level="INFO" >
        <appender-ref ref="ROLLING"/>
    </root>

</configuration>

现在在我的外部 Tomcat 中,我的 $CATALINA_BASE/lib 文件夹中有我的 application.propertieslogback

因为这些文件已经在类路径中。 logging.config 属性默认设置为 classpath:logback.xml。所以位于那里的 logback.xml 应该是可见的,但它被忽略了。

我也试过绝对路径

logging.config=C:\\myuser\\tomcat\\lib\\logback.xml

这也被忽略了。

例如,我正在尝试使用外部 logback.xml 覆盖日志记录级别,如下所示:

<configuration scan="true">

    <root level="DEBUG" >
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="ROLLING"/>
    </root>

</configuration>

有什么想法吗?

【问题讨论】:

你解决了吗? 在某种程度上是的。但不是与外部文件。我使用了一些属性并使用 Java 初始化了附加程序。可能不是最好的解决方案。 你能发布一些代码吗?或者在这里回答自己... 【参考方案1】:

在您的项目中source 确保 logback.xml 位于类路径文件夹中。

所以如果你的项目是一个名为 sampleweb 的 web 项目,你的 logback.xml 应该是

src/main/resources

您不必在外部配置 tomcat。

【讨论】:

以上是关于Spring Boot - 独立 Tomcat / 外部 logback 文件被忽略的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot - 独立 Tomcat / 外部 logback 文件被忽略

Spring Boot YML 和独立 Tomcat 8 服务器

在 Tomcat 中部署的 Spring Boot 提供 404 但可以独立运行

独立使用时 spring-boot-starter-jdbc 的问题

部署在 Tomcat 上的 Spring Boot Rest API 提供 404 但独立工作一切正常

spring boot 嵌入式 tomcat 不以 jcifs smb 库开头