我正在尝试找出${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中也没有定义
2条答案
按热度按时间14ifxucb1#
它在
spring-boot-<version>.RELEASE.jar
内部的org/springframework/boot/logging/logback/base.xml
中定义如下:它尝试查找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"/>
。我希望已经回答了你的问题。
cyvaqqii2#
通常由文件包含/org/springframework/ Boot /logging/logback/base.xml(spring-boot-2.2.0)
${LOG_FILE}以这种方式定义,通过包含file-appender.xml定义基础.xml