LOG_PATH_IS_UNDEFINED

問題:java

SpringBoot + LogBack 寫日誌,除了正常的日誌以外,程序跑起來後會在項目根目錄多生成一個 LOG_PATH_IS_UNDEFINED 的文件夾,個人配置是如下:spring

applickation.ymlbootstrap

#log
logging:
  config: classpath:logback-spring.xml
  path: d:/log/outerlink
#log end
logback-spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/base.xml"/>

    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>
        <File>${LOG_PATH}/error.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_PATH}/error-%d{yyyyMMdd}.log.%i</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>50MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <maxHistory>2</maxHistory>
        </rollingPolicy>

        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%msg%n</Pattern>
        </layout>
    </appender>

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

</configuration>

解決辦法 :app

新建 bootstrap.yml,把日誌配置寫到裏面spa

 

 緣由:日誌

Spring容器在Logback初始化以後設置LOG_PATH ,因此在 logback-spring.xml 找不到 LOG_PATH。但 bootstrap.yml 由父Spring ApplicationContext加載,父ApplicationContext被加載到使用application.yml的以前code

 

注:xml

發現只有在 pom.xml 加入spring cloud相關包才能加載 bootstrap.yml , 具體緣由還不是很明白 。我是加入了blog

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-feign</artifactId>
    <version>1.4.2.RELEASE</version>
</dependency>
本站公眾號
   歡迎關注本站公眾號,獲取更多信息