logback 默認集成在 spring boot 中,是基于 slf4j 的日志框架。默認情況下 spring boot 是以 info 級別輸出到控制臺。
它的日志級別是:
all < trace < debug < info < warn < error < off
配置
logback 可以直接在 application.properties 或 application.yml 中配置,但僅支持一些簡單的配置,復雜的文件輸出還是需要配置在 xml 配置文件中。配置文件可命名為 logback.xml , logback 自動會在 classpath 的根目錄下搜索配置文件,不過 spring boot 建議命名為 logback-spring.xml,這樣會自動引入 spring boot 一些擴展功能。
如果需要引入自定義名稱的配置文件,需要在 spring boot 的配置文件中指定,如:
1
2
|
logging: config: classpath:logback-spring.xml |
同時 spring boot 提供了一個默認的 base.xml 配置,可以按照如下方式引入:
1
2
3
4
|
<?xml version= "1.0" encoding= "utf-8" ?> <configuration> <include resource= "org/springframework/boot/logging/logback/base.xml" /> </configuration> |
base.xml 提供了一些基本的默認配置以及在控制臺輸出時的關鍵字配色,具體文件內容可以看這里,可以查看到一些常用的配置寫法。
詳細配置
變量
可以使用 <property> 來定義變量:
1
|
<property name= "log.path" value= "/var/logs/application" /> |
同時可以引入 spring 的環境變量:
1
2
|
<property resource= "application.yml" /> <property resource= "application.properties" /> |
所有的變量都可以通過 ${} 來調用。
輸出到控制臺
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<?xml version= "1.0" encoding= "utf-8" ?> <configuration> <appender name= "console" class = "ch.qos.logback.core.consoleappender" > <encoder> <pattern>%.-1level|%- 40 .40logger{ 0 }|%msg%n</pattern> </encoder> </appender> <logger name= "com.mycompany.myapp" level= "debug" /> <logger name= "org.springframework" level= "info" /> <logger name= "org.springframework.beans" level= "debug" /> <root level= "warn" > <appender-ref ref= "console" /> </root> </configuration> |
輸出到文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<property name= "log_file" value= "logfile" /> <appender name= "file" class = "ch.qos.logback.core.rolling.rollingfileappender" > <file>${log_file}.log</file> <rollingpolicy class = "ch.qos.logback.core.rolling.timebasedrollingpolicy" > <!-- 每日歸檔日志文件 --> <filenamepattern>${log_file}.%d{yyyy-mm-dd}.gz</filenamepattern> <!-- 保留 30 天的歸檔日志文件 --> <maxhistory> 30 </maxhistory> <!-- 日志文件上限 3g,超過后會刪除舊的歸檔日志文件 --> <totalsizecap>3gb</totalsizecap> </rollingpolicy> <encoder> <pattern>%-4relative [%thread] %-5level %logger{ 35 } - %msg%n</pattern> </encoder> </appender> |
多環境配置
logback 同樣支持多環境配置,如 dev 、 test 、 prod
1
2
3
|
<springprofile name= "dev" > <logger name= "com.mycompany.myapp" level= "debug" /> </springprofile> |
啟動的時候 java -jar xxx.jar --spring.profiles.active=dev 即可使配置生效。
如果要使用 spring 擴展的 profile 支持,配置文件名必須命名為 logback_spring.xml,此時當 application.properties 中指定為 spring.profiles.active=dev 時,上述配置才會生效。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:https://segmentfault.com/a/1190000018323081