SpringBoot多環(huán)境下集成logback的配置指南
Logback是由log4j創(chuàng)始人設(shè)計(jì)的又一個(gè)開源日志組件。可用于項(xiàng)目日志功能。
第1步:添加坐標(biāo)依賴
<!--logback--> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.4.14</version> </dependency>
logback里依賴了slf4j,就不用單獨(dú)添加slf4j坐標(biāo)了

第2步:創(chuàng)建logback配置文件
在resources目錄下創(chuàng)建logback文件夾,并創(chuàng)建dev.xml,pro.xml兩個(gè)配置文件,用于配置開發(fā)環(huán)境和生產(chǎn)環(huán)境的logback配置。目錄結(jié)構(gòu)像這樣:

第3步:在application.yaml中根據(jù)運(yùn)行環(huán)境讀取logback配置
#日志配置
logging:
config: classpath:logback/${spring.profiles.active}.xml #根據(jù)運(yùn)行環(huán)境讀取日志配置第4步:配置logback/dev.xml文件(開發(fā)環(huán)境的日志配置)
開發(fā)環(huán)境中,可以將日志打印在控制臺。
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!-- 設(shè)置控制臺彩色日志格式,注意:%L打印行號對性能有影響,因此不建議在生產(chǎn)環(huán)境使用。 -->
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
<conversionRule conversionWord="wEx"
converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
<property name="CONSOLE_LOG_PATTERN"
value="%clr([%d{HH:mm:ss}){faint} %clr(%p) %clr(%.10t]){faint} %clr(%C{39}){cyan} %clr(%M:%L){magenta}: %m%n%wEx"/>
<!--設(shè)置輸出到控制臺-->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder" charset="UTF-8">
<!-- 設(shè)置輸出到控制臺的日志格式 -->
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
</encoder>
</appender>
<!--設(shè)置日志級別-->
<root level="INFO">
<appender-ref ref="CONSOLE"/>
</root>
</configuration>
第5步:配置logback/pro.xml文件(生成環(huán)境的日志配置)
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!-- 應(yīng)用名稱 -->
<springProperty scope="context" name="springApplicationName" source="spring.application.name"
defaultValue="spring"/>
<!-- 環(huán)境 -->
<springProperty scope="context" name="springProfilesActive" source="spring.profiles.active" defaultValue="pro"/>
<!-- 重啟后是否刪除日志 -->
<springProperty scope="context" name="cleanHistoryOnStart"
source="logging.logback.rollingpolicy.clean-history-on-start" defaultValue="true"/>
<!-- 單個(gè)日志文件的大小 -->
<springProperty scope="context" name="maxFileSize" source="logging.logback.rollingpolicy.max-file-size"
defaultValue="10MB"/>
<!-- 日志總文件最大值 -->
<springProperty scope="context" name="totalSizeCap" source="logging.logback.rollingpolicy.total-size-cap"
defaultValue="50GB"/>
<!-- 日志保留時(shí)長 (天) -->
<springProperty scope="context" name="maxHistory" source="logging.logback.rollingpolicy.max-history"
defaultValue="30"/>
<!-- 日志文件路徑 -->
<springProperty scope="context" name="path" source="logging.file.path"
defaultValue="./log/${springApplicationName}/${springProfilesActive}"/>
<contextName>${springApplicationName}</contextName>
<property name="PATTERN_FILE" value="%d{yyyy/MM/dd-HH:mm:ss} %-5level [%thread] %class{5}:%line>>%msg%n"/>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${path}/%d{yyyy-MM-dd}/%i.log</fileNamePattern>
<totalSizeCap>${totalSizeCap}</totalSizeCap>
<maxHistory>${maxHistory}</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>${maxFileSize}</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!-- 重啟項(xiàng)目后刪除日志 -->
<cleanHistoryOnStart>${cleanHistoryOnStart}</cleanHistoryOnStart>
</rollingPolicy>
<encoder>
<pattern>${PATTERN_FILE}</pattern>
</encoder>
</appender>
<!--設(shè)置日志級別-->
<root level="WARN">
<appender-ref ref="FILE"/>
</root>
</configuration>
第6步:測試日志輸出
在Controller中編寫測試代碼:
import ch.qos.logback.classic.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/")
public class HomeController {
private static final Logger logger = (Logger) LoggerFactory.getLogger(HomeController.class);
@GetMapping("/")
public String index() {
logger.debug("【Debug】- Hello.");
logger.info("【Info】- Hello.");
logger.warn("【W(wǎng)arn】- Hello.");
logger.error("【Error】- Hello.");
return "index";
}
}1.測試開發(fā)環(huán)境
在application.yaml文件中,配置:
spring:
profiles:
active: dev運(yùn)行項(xiàng)目,訪問對應(yīng)的地址,即可看到控制臺日志輸出:

2.測試生產(chǎn)環(huán)境
在application.yaml文件中,配置:
spring:
profiles:
active: pro運(yùn)行項(xiàng)目,訪問對應(yīng)的地址,即可看到對應(yīng)目錄下的日志輸出:

這個(gè)日志存放路徑,可以根據(jù)logback/pro.xml中fileNamePattern配置。
第7步:關(guān)閉logback啟動日志(可選)
使用logback啟動的時(shí)候總是會出現(xiàn)很多啟動日志,但是很多時(shí)候卻完全不需要這些日志,此時(shí)就會想到關(guān)閉這些日志。

只需要按照如下在logback.xml里面增加一行配置即可關(guān)閉logback啟動時(shí)的一堆日志。
<configuration debug="false">
<statusListener class="ch.qos.logback.core.status.NopStatusListener" />
...
<configuration>以上就是SpringBoot多環(huán)境下集成logback的配置指南的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot集成logback的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
SpringBoot項(xiàng)目使用?axis?調(diào)用webservice接口的實(shí)踐記錄
這篇文章主要介紹了SpringBoot項(xiàng)目使用?axis?調(diào)用webservice接口,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06
Spring?AI集成DeepSeek實(shí)現(xiàn)流式輸出的操作方法
本文介紹了如何在SpringBoot中使用Sse(Server-SentEvents)技術(shù)實(shí)現(xiàn)流式輸出,后端使用SpringMVC中的SseEmitter對象,前端使用EventSource對象監(jiān)聽SSE接口并展示數(shù)據(jù)流,通過這種方式可以提升用戶體驗(yàn),避免大模型響應(yīng)速度慢的問題,感興趣的朋友一起看看吧2025-03-03
java 中模擬UDP傳輸?shù)陌l(fā)送端和接收端實(shí)例詳解
這篇文章主要介紹了java 中模擬UDP傳輸?shù)陌l(fā)送端和接收端實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-03-03
Spring數(shù)據(jù)庫多數(shù)據(jù)源路由配置過程圖解
這篇文章主要介紹了Spring數(shù)據(jù)庫多數(shù)據(jù)源路由配置過程圖解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06
springboot啟動時(shí)如何獲取端口和項(xiàng)目名
這篇文章主要介紹了springboot啟動時(shí)如何獲取端口和項(xiàng)目名,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11
Java初學(xué)者之五子棋游戲?qū)崿F(xiàn)教程
這篇文章主要為大家詳細(xì)介紹了Java初學(xué)者之五子棋游戲?qū)崿F(xiàn)教程,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10
Java實(shí)現(xiàn)簡單的學(xué)生教師管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)簡單的學(xué)生教師管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02

