1.背景
SpringBoot 默認使用 Logback 框架作為日志框架栖秕。最近有個想法“由于配置了多環(huán)境簇捍,比如開發(fā)環(huán)境暑塑,測試環(huán)境等锅必,想根據(jù)不同環(huán)境指定日志文件的存儲位置”
2.行動
分下面幾個步驟:
- 第一步:配置多環(huán)境
- 第二步:配置不同環(huán)境下的參數(shù)
- 第三步:配置logback的配置文件
- 第四步:配置appender
2.1 第一步:配置多環(huán)境
我已經(jīng)配置好 了多環(huán)境,如下:
- application-dev.yml
- application-test.yml
- application-release.yml
參考:http://www.reibang.com/p/61758ef6b513
2.2 第二步:配置不同環(huán)境下的參數(shù)
開發(fā)時尔艇,是在mac環(huán)境下
在 application-dev.yml 下配置:
logging:
path: /Users/zhangyunfei/Downloads
....
下面是 線上環(huán)境的配置么鹤,它在linux系統(tǒng)下
在 application-release.yml 下配置:
logging:
path: /data/logs
....
2.3 第三步:配置logback的配置文件
打開logback的配置文件 logback-spring.xml 蒸甜,使用 springProperty 來讀取 springboot 中的參數(shù)柠新,在這里讀取了 logging.path參數(shù)。
代碼:
<springProperty name="LOG_PATH" source="logging.path" defaultValue="./logs" />
<property name="log.path" value="${LOG_PATH:-.}/spf-eureka"/>
2.4 第四步:配置appender
<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.path}/eureka_info.%d{yyyyMMdd}.log</fileNamePattern>
<!--日志文件保留天數(shù)-->
<MaxHistory>7</MaxHistory>
</rollingPolicy>
<encoder>
<pattern>${pattern}</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
END