小编典典

如何在Spring Boot中禁用Logback ConsoleAppender

spring-boot

我正在使用Spring
Boot构建命令行应用程序。在这样的应用程序中,不适合使用logback控制台日志记录。如何完全禁用控制台附加程序,但仍使文件附加程序与默认的Spring
Boot支持一起使用

更新资料

我创建了一个功能请求,以在此处更简单地支持此功能:

https://github.com/spring-projects/spring-
boot/issues/1612


阅读 694

收藏
2020-05-30

共1个答案

小编典典

只需添加一个名为logback.xmlsrc/main/resources与像(原始拷贝除了控制台部分从spring启动的源)的内容:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>


    <property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}/}spring.log}"/>
    <property name="FILE_LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${PID:- } [%t] --- %-40.40logger{39} : %m%n%wex"/>

    <appender name="FILE"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder>
            <pattern>${FILE_LOG_PATTERN}</pattern>
        </encoder>
        <file>${LOG_FILE}</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
            <fileNamePattern>${LOG_FILE}.%i</fileNamePattern>
        </rollingPolicy>
        <triggeringPolicy
                class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <MaxFileSize>10MB</MaxFileSize>
        </triggeringPolicy>
    </appender>

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

</configuration>

注意

<property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}/}spring.log}"/>

为了支持从Spring Boot的logging.file和设置日志文件,需要使用此文件logging.path

如果您要做的只是设置一些标准日志文件,则可以在上面的属性中设置其路径。

更新(02-04-2015)

在较新版本的Spring Boot中,您可以轻松地包括base.xmlSpring Boot中的from并创建以下内容logback.xml

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

    <root level="INFO">
        <appender-ref ref="FILE" />
    </root>
</configuration>

更新(15-09-2017)

为了在Spring Boot 1.5.x和2.0.0.M4上运行,我添加了一个名为的文件logback- spring.xml并将其添加到resources目录中。该文件可能看起来像这样

<?xml version="1.0" encoding="UTF-8"?>
<configuration>


    <property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}/}spring.log}"/>
    <property name="FILE_LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${PID:- } [%t] --- %-40.40logger{39} : %m%n"/>

    <appender name="FILE"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder>
            <pattern>${FILE_LOG_PATTERN}</pattern>
        </encoder>
        <file>${LOG_FILE}</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
            <fileNamePattern>${LOG_FILE}.%i</fileNamePattern>
        </rollingPolicy>
        <triggeringPolicy
                class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <MaxFileSize>10MB</MaxFileSize>
        </triggeringPolicy>
    </appender>

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

</configuration>
2020-05-30