SpringBoot之LogBack配置詳解
LogBack 默認(rèn)集成在 Spring Boot 中,是基于 Slf4j 的日志框架。默認(rèn)情況下 Spring Boot 是以 INFO 級(jí)別輸出到控制臺(tái)。
它的日志級(jí)別是:
ALL < TRACE < DEBUG < INFO < WARN < ERROR < OFF
配置
LogBack 可以直接在 application.properties 或 application.yml 中配置,但僅支持一些簡(jiǎn)單的配置,復(fù)雜的文件輸出還是需要配置在 xml 配置文件中。配置文件可命名為 logback.xml , LogBack 自動(dòng)會(huì)在 classpath 的根目錄下搜索配置文件,不過 Spring Boot 建議命名為 logback-spring.xml,這樣會(huì)自動(dòng)引入 Spring Boot 一些擴(kuò)展功能。
如果需要引入自定義名稱的配置文件,需要在 Spring Boot 的配置文件中指定,如:
logging: config: classpath:logback-spring.xml
同時(shí) Spring Boot 提供了一個(gè)默認(rèn)的 base.xml 配置,可以按照如下方式引入:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <include resource="org/springframework/boot/logging/logback/base.xml"/> </configuration>
base.xml 提供了一些基本的默認(rèn)配置以及在控制臺(tái)輸出時(shí)的關(guān)鍵字配色,具體文件內(nèi)容可以看這里,可以查看到一些常用的配置寫法。
詳細(xì)配置
變量
可以使用 <property> 來定義變量:
<property name="log.path" value="/var/logs/application" />
同時(shí)可以引入 Spring 的環(huán)境變量:
<property resource="application.yml" /> <property resource="application.properties" />
所有的變量都可以通過 ${} 來調(diào)用。
輸出到控制臺(tái)
<?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>
輸出到文件
<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,超過后會(huì)刪除舊的歸檔日志文件 -->
<totalSizeCap>3GB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
</encoder>
</appender>
多環(huán)境配置
LogBack 同樣支持多環(huán)境配置,如 dev 、 test 、 prod
<springProfile name="dev"> <logger name="com.mycompany.myapp" level="debug"/> </springProfile>
啟動(dòng)的時(shí)候 java -jar xxx.jar --spring.profiles.active=dev 即可使配置生效。
如果要使用 Spring 擴(kuò)展的 profile 支持,配置文件名必須命名為 LogBack_Spring.xml,此時(shí)當(dāng) application.properties 中指定為 spring.profiles.active=dev 時(shí),上述配置才會(huì)生效。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Maven將Jar包打入本地倉(cāng)庫(kù)的實(shí)現(xiàn)
項(xiàng)目需要用到一個(gè)Jar包,不能從遠(yuǎn)程倉(cāng)庫(kù)拉取,只有一個(gè)Jar包,所以需要將Jar包打入到本地倉(cāng)庫(kù)才能引入項(xiàng)目,本文主要介紹了Maven將Jar包打入本地倉(cāng)庫(kù)的實(shí)現(xiàn),感興趣的可以了解一下2023-12-12
解決JavaWeb-file.isDirectory()遇到的坑問題
JavaWeb開發(fā)中,使用`file.isDirectory()`判斷路徑是否為文件夾時(shí),需要特別注意:該方法只能判斷已存在的文件夾,若路徑不存在,無論其實(shí)際是否應(yīng)為文件夾,均會(huì)返回`false`,為了解決這個(gè)問題,可以采用正則表達(dá)式進(jìn)行判斷,但要求路徑字符串的結(jié)尾必須添加反斜杠(\)2025-02-02
springboot配置多數(shù)據(jù)源的實(shí)例(MongoDB主從)
下面小編就為大家分享一篇springboot配置多數(shù)據(jù)源的實(shí)例(MongoDB主從),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2017-12-12
java插入排序和希爾排序?qū)崿F(xiàn)思路及代碼
這篇文章主要介紹了插入排序和希爾排序兩種排序算法,文章通過代碼示例和圖解詳細(xì)介紹了這兩種排序算法的實(shí)現(xiàn)過程和原理,需要的朋友可以參考下2025-03-03
Java中的Lambda表達(dá)式及其應(yīng)用小結(jié)
Java中的Lambda表達(dá)式是一項(xiàng)極具創(chuàng)新性的特性,它使得Java代碼更加簡(jiǎn)潔和高效,尤其是在集合操作和并行處理方面,這篇文章主要介紹了Java中的Lambda表達(dá)式及其應(yīng)用,需要的朋友可以參考下2025-04-04
java編譯后的文件出現(xiàn)xx$1.class的原因及解決方式
這篇文章主要介紹了java編譯后的文件出現(xiàn)xx$1.class的原因及解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-12-12
spring MVC + bootstrap實(shí)現(xiàn)文件上傳示例(帶進(jìn)度條)
本篇文章主要介紹了spring MVC + bootstrap實(shí)現(xiàn)文件上傳示例(帶進(jìn)度條),非常具有使用價(jià)值,有需要的朋友可以了解一下。2017-03-03

