org.springframework. Boot logback将日志文件(${LOG_FILE})放在哪里?

lf3rwulv  于 2022-12-23  发布在  Spring
关注(0)|答案(2)|浏览(149)

我正在尝试找出${LOG_FILE}的定义位置。
请参见下面的file-appender.xml:

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

<!--
File appender logback configuration provided for import, equivalent to the programmatic
initialization performed by Boot
-->

<included>
    <appender name="FILE"
        class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder>
            <pattern>${FILE_LOG_PATTERN}</pattern>
        </encoder>
        <file>${LOG_FILE}</file> <!-- THIS ONE ---------------------------------->

<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
                <fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz</fileNamePattern>
                <maxFileSize>${LOG_FILE_MAX_SIZE:-10MB}</maxFileSize>
                <maxHistory>${LOG_FILE_MAX_HISTORY:-0}</maxHistory>
            </rollingPolicy>
        </appender>
    </included>

在springframework日志目录中的任何xml中都没有看到它的定义,当然在我的半样板文件logback-spring.xml中也没有定义

14ifxucb

14ifxucb1#

它在spring-boot-<version>.RELEASE.jar内部的org/springframework/boot/logging/logback/base.xml中定义如下:

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

它尝试查找LOG_FILE作为要将日志发送到的文件;如果不存在,则它尝试使用目录LOG_PATH中的“spring.log”文件,如果不存在于LOG_TEMP中,如果不存在于java.io.tmpdir属性中,并且最后,如果不存在,则使用“/tmp”中的“spring.log”文件。换句话说,如果您没有自己定义LOG_FILE,并且您没有设置上面的任何其他属性,您可以在/tmp/spring. log文件中找到您的日志(LOG_FILE的值正好是这个值)。
您可以通过在file-appender.xml(或logback-spring.xml)文件中添加自己的<property name="LOG_FILE" value="...." />来覆盖它。
org.springframework.boot.logging.logback包中,您可以找到spring设置的所有属性,例如,在您的logback配置文件的开头添加<include resource="org/springframework/boot/logging/logback/base.xml"/>
我希望已经回答了你的问题。

cyvaqqii

cyvaqqii2#

通常由文件包含/org/springframework/ Boot /logging/logback/base.xml(spring-boot-2.2.0)
${LOG_FILE}以这种方式定义,通过包含file-appender.xml定义基础.xml

<included>
    <include resource="org/springframework/boot/logging/logback/defaults.xml" />
    <property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}}/spring.log}"/>
    <include resource="org/springframework/boot/logging/logback/console-appender.xml" />
    <include resource="org/springframework/boot/logging/logback/file-appender.xml" />
    <root level="INFO">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="FILE" />
    </root>
</included>

相关问题