問題: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>