springboot中配置logback-spring.xml的方法
一、在src/main/resources目錄下,也就是在classpath路徑下創(chuàng)建logback-spring.xml
注:springboot框架自動(dòng)配置,如果更換名稱,可在配置文件指定該文件即可
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property name="log_dir" value="${user.dir}/logs"/>
<!-- <property name="log_dir" value="D:/logs"/>-->
<!-- 控制臺(tái)輸出 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{80} - %msg%n</pattern>
</encoder>
</appender>
<!-- info -->
<appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log_dir}/info.log</file>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log_dir}/info.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory> <!-- 保留30天的日志 -->
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!-- info -->
<appender name="WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log_dir}/warn.log</file>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>WARN</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log_dir}/warn.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory> <!-- 保留30天的日志 -->
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!-- error -->
<appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log_dir}/error.log</file>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log_dir}/error.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory> <!-- 保留30天的日志 -->
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!-- 設(shè)置日志級(jí)別 -->
<root level="INFO">
<appender-ref ref="STDOUT" />
<appender-ref ref="INFO" />
<appender-ref ref="ERROR"/>
<appender-ref ref="WARN"/>
</root>
<!-- <logger name="com.example.demo" level="ERROR">-->
<!-- <appender-ref ref="ERROR"/>-->
<!-- </logger>-->
<!-- <logger name="myservice" level="info"> example: LoggerFactory.getLogger("myservice")-->
<!-- <appender-ref ref="INFO"/>-->
<!-- </logger>-->
<!-- <logger name="com.example.demo.test.PDF2Img" level="info">-->
<!-- <appender-ref ref="INFO"/>-->
<!-- </logger>-->
</configuration>二、日志xml配置,根元素是:configuation
根元素下同級(jí)的主要配置元素有三個(gè):
1.appender
-該配置表明:希望日志通過(guò)什么樣的方式輸出,并且輸出到何處(比如控制臺(tái)、文件等)
2.root
-該配置表明:配置日志根級(jí)別,也就是日志最低級(jí)別,如:debug<info<warn<error,日志級(jí)別越低,輸出范圍就廣。比如:配置root級(jí)別level=“info”,那么info以上的日志都能輸出,即info、warn和error都能打印輸出
3.logger
-該配置表明:可以指定包、類(lèi)或者自定義名稱,并配置級(jí)別,告訴日志此配置下的日志和級(jí)別輸出到指定的位置,如代碼所示。
- 可選屬性:property,可以定義參數(shù)名稱和值,方便appender中引用
三、根據(jù)不同環(huán)境配置不同的日志格式輸出
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 自定義屬性 -->
<property name="log_dir" value="${user.dir}/logs"/>
<!-- 控制臺(tái)輸出 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{80}[line:%line]: %msg%n</pattern>
</encoder>
</appender>
<!-- info -->
<appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log_dir}/info.log</file>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log_dir}/info.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory> <!-- 保留30天的日志 -->
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{80}[line:%line] - %msg%n</pattern>
</encoder>
</appender>
<!-- info -->
<appender name="WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log_dir}/warn.log</file>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>WARN</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log_dir}/warn.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory> <!-- 保留30天的日志 -->
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{80}[line:%line] - %msg%n</pattern>
</encoder>
</appender>
<!-- error -->
<appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log_dir}/error.log</file>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log_dir}/error.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory> <!-- 保留30天的日志 -->
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{80}[line:%line] - %msg%n</pattern>
</encoder>
</appender>
<!-- 設(shè)置開(kāi)發(fā)環(huán)境日志級(jí)別 -->
<springProfile name="dev">
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</springProfile>
<!-- 設(shè)置測(cè)試環(huán)境日志級(jí)別 -->
<springProfile name="test">
<root level="INFO">
<appender-ref ref="INFO" />
<appender-ref ref="ERROR"/>
<appender-ref ref="WARN"/>
</root>
</springProfile>
<!-- 設(shè)置生產(chǎn)環(huán)境日志級(jí)別 -->
<springProfile name="prod">
<root level="INFO">
<appender-ref ref="INFO" />
<appender-ref ref="ERROR"/>
<appender-ref ref="WARN"/>
</root>
</springProfile>
<!-- <logger name="com.bdqn.assistant.utils" level="info">-->
<!-- <appender-ref ref="INFO"/> -->
<!-- </logger>-->
</configuration>如上配置:
springProfile 這個(gè)標(biāo)簽就是對(duì)應(yīng)spring.profiles.active屬性,
name這個(gè)屬性值就是spring.profiles.active對(duì)應(yīng)的值,比如:dev、test、prod
依據(jù)這個(gè)環(huán)境標(biāo)簽參數(shù),可以自由設(shè)置xml的各種標(biāo)簽引用。
另外,可以對(duì)日志的樣式進(jìn)行設(shè)置,后續(xù)補(bǔ)充?。?!
到此這篇關(guān)于springboot中配置logback-spring.xml的文章就介紹到這了,更多相關(guān)springboot 配置logback-spring.xml內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot的父級(jí)依賴:spring-boot-starter-parent詳解
SpringBoot通過(guò)父級(jí)依賴spring-boot-starter-parent實(shí)現(xiàn)項(xiàng)目快速構(gòu)建,它依賴于spring-boot-dependencies來(lái)統(tǒng)一管理項(xiàng)目中的依賴版本,省去了手動(dòng)指定版本信息的麻煩,這種機(jī)制不僅規(guī)定了默認(rèn)的Java版本和編碼格式2024-09-09
Mybatis統(tǒng)計(jì)sql運(yùn)行時(shí)間的兩種方式
這篇文章主要介紹了Mybatis統(tǒng)計(jì)sql運(yùn)行時(shí)間的方案,Spring?Boot?+?Mybatis?web項(xiàng)目,統(tǒng)計(jì)sql運(yùn)行時(shí)間,用于分析慢sql,優(yōu)化系統(tǒng)速度,方案有兩種:自定義實(shí)現(xiàn)?Interceptor和使用現(xiàn)有依賴庫(kù)(Druid),文中通過(guò)代碼示例講解的非常詳細(xì),需要的朋友可以參考下2024-11-11
Java Web Listener實(shí)現(xiàn)事件監(jiān)聽(tīng)與處理
Java Web開(kāi)發(fā)中的Listener是一種事件機(jī)制,通過(guò)監(jiān)聽(tīng)Web應(yīng)用程序的事件,實(shí)現(xiàn)對(duì)事件的處理,從而實(shí)現(xiàn)更加靈活和高效的應(yīng)用程序開(kāi)發(fā)。Listener能夠監(jiān)聽(tīng)的事件包括應(yīng)用程序啟動(dòng)和關(guān)閉、Session創(chuàng)建和銷(xiāo)毀、請(qǐng)求和響應(yīng)對(duì)象的創(chuàng)建和銷(xiāo)毀等2023-04-04
Java微信公眾平臺(tái)開(kāi)發(fā)(12) 微信用戶信息的獲取
這篇文章主要為大家詳細(xì)介紹了Java微信公眾平臺(tái)開(kāi)發(fā)第十二步,微信用戶信息的獲取,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04
Java網(wǎng)約車(chē)項(xiàng)目實(shí)戰(zhàn)之實(shí)現(xiàn)搶單功能詳解
本文詳細(xì)介紹了如何使用Java實(shí)現(xiàn)網(wǎng)約車(chē)項(xiàng)目的搶單功能,并提供了一個(gè)完整的代碼示例,以便讀者能夠直接運(yùn)行和參考,感興趣的朋友一起看看吧2024-12-12
解決Java中socket使用getInputStream()阻塞問(wèn)題
這篇文章主要介紹了解決Java中socket使用getInputStream()阻塞問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12
springboot實(shí)現(xiàn)熱部署操作方法
這篇文章主要介紹了springboot實(shí)現(xiàn)熱部署操作方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11
Spring Boot詳解創(chuàng)建和運(yùn)行基礎(chǔ)流程
這篇文章主要介紹了SpringBoot創(chuàng)建和運(yùn)行的基礎(chǔ)流程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06

