解決springboot使用logback日志出現LOG_PATH_IS_UNDEFINED文件夾的問題
application.properties
加入以下配置
#logback home logging.path=D:/logs/esb-producer
logback.xml
<property name="LOG_PATH" value="${LOG_PATH:- }" /> <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>INFO</level> </filter> <File>${LOG_PATH}/info.log</File> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOG_PATH}/info-%d{yyyyMMdd}.log.%i</fileNamePattern> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>20MB</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>
重點是這段<property name="LOG_PATH" value="${LOG_PATH:- }" />
${LOG_PATH:-}
用法
- 首先LOG_PATH是什麼它不是你application.properties配置的 logging.path key, LOG_PATH 是logging.path的系統環境變量(請參考下圖)直接引用在,不要直接引用logging.path 是引用不到的
- LOG_PATH = D:/logs/esb-producer
- -表示分割符,後面的參數是默認路徑
- .表示當前項目根路徑也可以是/usr/local/log…舉一反三
- so ${LOG_PATH:-.} =${D:/logs/esb-producer-當前項目根路徑}
- 這種方式有可能會生成倆個日志路徑 一個是 D:/logs/esb-producer 另一個是在當前項目根路徑生成的日志 因為spring比logback先啟動 所以會在項目更目錄生成一個spring的日志 這個就比較惡心瞭 我想把日志輸出到一起怎麼做呢
${LOG_PATH:- }
默認路徑設置成空格
這樣就不會在你的項目根目錄生成spring日志文件瞭(會在你服務器根目錄生成)接下來系統日志就會輸出到你的自定義目錄瞭
logback配置
到此這篇關於解決springboot使用logback日志出現LOG_PATH_IS_UNDEFINED文件夾的問題的文章就介紹到這瞭,更多相關springboot logback LOG_PATH_IS_UNDEFINED內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Spring Boot console log 格式自定義方式
- SpringBoot配置logback.xml 多環境的操作步驟
- Springboot內外部logback多環境配置詳解
- SpringBoot項目讀取外置logback配置文件的問題及解決
- logback.xml動態配置程序路徑的操作