項目運行起來之后,為了方便后期對日志進行管理,所以需要能夠動態的指定logback日志輸出的路徑,搜索全網,找到了兩種辦法,接下來逐一講解一下。
- 第一種是使用
${}
來動態讀取系統命令行參數來指定日志輸出路徑
<property name="log.path" value="${LOG_PATH:-.}/logs"/>
默認在項目的根目錄下生成日志文件,可以通過-DLOG_HOME=""來指定日志輸出路徑,${LOG_PATH:-.}
中的 .
可以替換為任意指定路徑作為默認的輸出路徑
- 第二種是使用
springProperty
來獲取到application.yml
中的配置來指定輸出路徑
<springProperty scope="context" name="log.path" source="logging.path" defaultValue="E:/log"/>
可以讀取到application.yml中配置的路徑,但是會同時在defaultValue的路徑中生成日志文件,如果沒有defaultValue,
則同時會在項目根目錄中生成一個logging.path_is_undefine日志文件,默認生成的日志文件不會隨着項目日志的增加而增加,
新增的日志只會在logging.path指定路徑中新增/n
造成這種現象的原因是 logback 的配置文件會比 springboot 的配置文件先加載,所以一開始logback是讀取不到application.yml
中的配置的。網上說將logback.xml
更換為logback-spring.xml
就不會出現這種情況,但是我更改過后依然是同樣的情況,所以這里我還是推薦大家使用第一種方法來動態指定logback日志輸出路徑。