logback-spring.xml的配置及示例詳解(直接復(fù)制粘貼可用)
一、注意實(shí)現(xiàn)
logback-spring.xml
中有三處需要根據(jù)實(shí)際業(yè)務(wù)進(jìn)行修改,直接查找“(根據(jù)業(yè)務(wù)修改)”即可進(jìn)行定位。
如果不想修改,直接復(fù)制粘貼到自己系統(tǒng)運(yùn)行也可以,不會(huì)報(bào)錯(cuò)。
二、配置及詳解
application.yml 配置
#日志配置 logging: config: classpath:logback-spring.xml
logback-spring.xml 配置
<?xml version="1.0" encoding="UTF-8"?> <configuration scan="true" scanPeriod="10 seconds"> <!-- logger上下文名稱(根據(jù)業(yè)務(wù)修改) --> <contextName>MyContextName</contextName> <!-- 定義了一個(gè)名為serverName的屬性,它的值來(lái)自于logging.file.name,如果沒(méi)有找到該屬性默認(rèn)為MyServerName(根據(jù)業(yè)務(wù)修改) --> <springProperty name="serverName" source="logging.file.name" defaultValue="MyServerName"/> <springProperty name="logging.path" source="logging.file.path" defaultValue="././logs/"/> <!-- 彩色日志依賴的渲染類 --> <!-- 定義了一個(gè)名為clr的轉(zhuǎn)換規(guī)則,它使用org.springframework.boot.logging.logback.ColorConverter類進(jìn)行轉(zhuǎn)換,這個(gè)元素通常用于將日志輸出中的文本著色,以便更容易地區(qū)分不同的日志級(jí)別或其他信息 --> <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/> <!-- WhitespaceThrowableProxyConverter和ExtendedWhitespaceThrowableProxyConverter都是用于將異常信息轉(zhuǎn)換為字符串,并將其中的換行符替換為空格,以便更容易地在日志輸出中顯示的類。它們之間的區(qū)別在于,ExtendedWhitespaceThrowableProxyConverter在輸出異常信息時(shí)會(huì)包含更多的詳細(xì)信息,例如異常的類名、方法名和行號(hào)等 --> <!-- 定義了一個(gè)名為wex的轉(zhuǎn)換規(guī)則,它使用org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter類進(jìn)行轉(zhuǎn)換,這個(gè)元素通常用于將異常信息轉(zhuǎn)換為字符串,并將其中的換行符替換為空格,以便更容易地在日志輸出中顯示 --> <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/> <!-- 定義了一個(gè)名為wEx的轉(zhuǎn)換規(guī)則,它使用org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter類進(jìn)行轉(zhuǎn)換,這個(gè)元素通常用于將異常信息轉(zhuǎn)換為字符串,并將其中的換行符替換為空格,以便更容易地在日志輸出中顯示 --> <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/> <!-- 彩色日志格式 --> <!-- value值是日志輸出模板, :-是屬性名和其默認(rèn)值之間的分隔符,作用與:相同 --> <!-- 定義日志輸出格式的轉(zhuǎn)換規(guī)則,%d{yyyy-MM-dd HH:mm:ss.SSS}表示日期和時(shí)間,%clr表示將輸出文本著色,{faint}表示使用淡色 --> <!-- %5p表示日志級(jí)別輸出右對(duì)齊,左邊以空格填充 --> <!-- ${PID:- }表示進(jìn)程ID,%clr表示將輸出文本著色,{magenta}表示使用洋紅色 --> <!-- ---表示一個(gè)分隔符 --> <!-- %t:顯示產(chǎn)生該日志的線程名;%15:若字符長(zhǎng)度小于15,則左邊用空格填充;%.15:若字符長(zhǎng)度超過(guò)15,截去多余字符 --> <!-- %-40:若字符長(zhǎng)度小于40,則右邊用空格填充;%.40:若字符長(zhǎng)度超過(guò)40,截去多余字符;logger{39}對(duì)應(yīng)的是“l(fā)ogging.WARNING”級(jí)別。具體來(lái)說(shuō),Python的logging模塊定義了以下幾個(gè)級(jí)別(從低到高):NOTSET、DEBUG、INFO、WARNING、ERROR、CRITICAL。因此,logger{39}表示的是WARNING級(jí)別,即日志記錄器會(huì)記錄所有WARNING級(jí)別及以上的日志信息 --> <!-- %m表示日志消息;%n表示換行符;${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}表示異常信息。如果日志輸出中包含異常信息,這個(gè)規(guī)則將會(huì)將其轉(zhuǎn)換為字符串,并將其中的換行符替換為空格,以便更容易地在日志輸出中顯示 --> <property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/> <!--1. 輸出到控制臺(tái)--> <!-- 定義控制臺(tái)日志輸出的appender,class="ch.qos.logback.core.ConsoleAppender"表示使用Logback框架提供的ConsoleAppender類來(lái)輸出日志到控制臺(tái) --> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <!--此日志appender是為開(kāi)發(fā)使用,只配置最底級(jí)別,控制臺(tái)輸出的日志級(jí)別是大于或等于此級(jí)別的日志信息--> <!-- 定義日志輸出級(jí)別的過(guò)濾器,class="ch.qos.logback.classic.filter.ThresholdFilter"表示使用Logback框架提供的ThresholdFilter類來(lái)過(guò)濾日志輸出,<level>debug</level>表示只輸出debug級(jí)別及以上的日志 --> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>debug</level> </filter> <encoder> <!-- ${CONSOLE_LOG_PATTERN}表示控制臺(tái)日志輸出格式,UTF-8表示編碼格式 --> <Pattern>${CONSOLE_LOG_PATTERN}</Pattern> <!-- 設(shè)置字符集 --> <charset>UTF-8</charset> </encoder> </appender> <!--2. 輸出到文檔--> <!-- 2.1 level為 DEBUG 日志,時(shí)間滾動(dòng)輸出 --> <!-- 定義文件日志輸出的appender,class="ch.qos.logback.core.rolling.RollingFileAppender"表示使用Logback框架提供的RollingFileAppender類來(lái)輸出日志到文件 --> <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!-- 正在記錄的日志文檔的路徑及文檔名 --> <file>${logging.path}/web_debug.log</file> <!--日志文檔輸出格式--> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> <charset>UTF-8</charset> <!-- 設(shè)置字符集 --> </encoder> <!-- 日志記錄器的滾動(dòng)策略,按日期,按大小記錄 --> <!-- 定義日志文件滾動(dòng)策略的標(biāo)簽,class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"表示使用Logback框架提供的TimeBasedRollingPolicy類來(lái)定義日志文件的滾動(dòng)策略 --> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- 日志歸檔 --> <!-- 定義日志文件名的模式。在這個(gè)模式中,${logging.path}表示日志文件的路徑,%d{yyyy-MM-dd}表示日期格式,%i表示文件索引 --> <fileNamePattern>${logging.path}/web-debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern> <!-- 定義日志文件滾動(dòng)策略的標(biāo)簽,class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"表示使用Logback框架提供的SizeAndTimeBasedFNATP類來(lái)定義日志文件的滾動(dòng)策略,<maxFileSize>100MB</maxFileSize>表示日志文件的最大大小為100MB。這個(gè)滾動(dòng)策略通常用于按照時(shí)間和文件大小滾動(dòng)日志文件,以便更好地管理日志文件的大小和數(shù)量 --> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>100MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> <!--日志文檔保留天數(shù)--> <maxHistory>15</maxHistory> </rollingPolicy> <!-- 此日志文檔只記錄debug級(jí)別的 --> <!-- 定義日志輸出級(jí)別的過(guò)濾器。在這個(gè)過(guò)濾器中,class="ch.qos.logback.classic.filter.LevelFilter"表示使用Logback框架提供的LevelFilter類來(lái)過(guò)濾日志輸出,<level>debug</level>表示只輸出debug級(jí)別及以上的日志 --> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>debug</level> <!-- <onMatch>ACCEPT</onMatch>表示如果日志事件與過(guò)濾器匹配,則接受該事件,<onMismatch>DENY</onMismatch>表示如果日志事件與過(guò)濾器不匹配,則拒絕該事件 --> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> </appender> <!-- 2.2 level為 INFO 日志,時(shí)間滾動(dòng)輸出 --> <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!-- 正在記錄的日志文檔的路徑及文檔名 --> <file>${logging.path}/web_info.log</file> <!--日志文檔輸出格式--> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> <charset>UTF-8</charset> </encoder> <!-- 日志記錄器的滾動(dòng)策略,按日期,按大小記錄 --> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- 天天日志歸檔路徑以及格式 --> <fileNamePattern>${logging.path}/web-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>100MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> <!--日志文檔保留天數(shù)--> <maxHistory>15</maxHistory> </rollingPolicy> <!-- 此日志文檔只記錄info級(jí)別的 --> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>info</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> </appender> <!-- 2.3 level為 WARN 日志,時(shí)間滾動(dòng)輸出 --> <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!-- 正在記錄的日志文檔的路徑及文檔名 --> <file>${logging.path}/web_warn.log</file> <!--日志文檔輸出格式--> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> <charset>UTF-8</charset> <!-- 此處設(shè)置字符集 --> </encoder> <!-- 日志記錄器的滾動(dòng)策略,按日期,按大小記錄 --> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${logging.path}/web-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>100MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> <!--日志文檔保留天數(shù)--> <maxHistory>15</maxHistory> </rollingPolicy> <!-- 此日志文檔只記錄warn級(jí)別的 --> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>warn</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> </appender> <!-- 2.4 level為 ERROR 日志,時(shí)間滾動(dòng)輸出 --> <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!-- 正在記錄的日志文檔的路徑及文檔名 --> <file>${logging.path}/web_error.log</file> <!--日志文檔輸出格式--> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> <charset>UTF-8</charset> <!-- 此處設(shè)置字符集 --> </encoder> <!-- 日志記錄器的滾動(dòng)策略,按日期,按大小記錄 --> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${logging.path}/web-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>100MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> <!--日志文檔保留天數(shù)--> <maxHistory>15</maxHistory> </rollingPolicy> <!-- 此日志文檔只記錄ERROR級(jí)別的 --> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> </appender> <!-- 4.1 開(kāi)發(fā)環(huán)境:打印控制臺(tái)--> <!-- 用于在Spring Boot應(yīng)用程序中配置日志記錄的標(biāo)簽。在這個(gè)標(biāo)簽中,name="dev"表示這個(gè)配置文件只在dev環(huán)境中生效,<logger name="com.myClass.controller" level="debug"/>表示為com.myClass.controller(根據(jù)業(yè)務(wù)修改)這個(gè)包下的類配置日志輸出級(jí)別為debug --> <springProfile name="dev"> <logger name="com.myClass.controller" level="debug"/> </springProfile> <!-- 用于配置日志輸出的標(biāo)簽。在這個(gè)標(biāo)簽中,level="info"表示日志輸出級(jí)別為info,<appender-ref ref="CONSOLE"/>、<appender-ref ref="DEBUG_FILE"/>、<appender-ref ref="INFO_FILE"/>、<appender-ref ref="WARN_FILE"/>、<appender-ref ref="ERROR_FILE"/>表示將日志輸出到不同的appender中,分別為控制臺(tái)、debug文件、info文件、warn文件和error文件 --> <root level="info"> <appender-ref ref="CONSOLE"/> <appender-ref ref="DEBUG_FILE"/> <appender-ref ref="INFO_FILE"/> <appender-ref ref="WARN_FILE"/> <appender-ref ref="ERROR_FILE"/> </root> </configuration>
附:日志六個(gè)級(jí)別
1、TRACE
TRACE 在線調(diào)試: 該級(jí)別日志,默認(rèn)情況下,既不打印到終端也不輸出到文件。此時(shí),對(duì)程序運(yùn)行效率幾乎不產(chǎn)生影響。
2、DEBUG
DEBUG 終端查看、在線調(diào)試: 該級(jí)別日志,默認(rèn)情況下會(huì)打印到終端輸出,但是不會(huì)歸檔到日志文件。因此,一般用于開(kāi)發(fā)者在程序當(dāng)前啟動(dòng)窗口上,查看日志流水信息。
3、INFO
INFO 報(bào)告程序進(jìn)度和狀態(tài)信息: 一般這種信息都是一過(guò)性的,不會(huì)大量反復(fù)輸出。
例如:連接商用庫(kù)成功后,可以打印一條連庫(kù)成功的信息,便于跟蹤程序進(jìn)展信息。
4、WARNING
WARNING 警告信息: 程序處理中遇到非法數(shù)據(jù)或者某種可能的錯(cuò)誤。該錯(cuò)誤是一過(guò)性的、可恢復(fù)的,不會(huì)影響程序繼續(xù)運(yùn)行,程序仍處在正常狀態(tài)。
5、ERROR
ERROR 狀態(tài)錯(cuò)誤: 該錯(cuò)誤發(fā)生后程序仍然可以運(yùn)行,但是極有可能運(yùn)行在某種非正常的狀態(tài)下,導(dǎo)致無(wú)法完成全部既定的功能。
6、FATAL
FATAL 致命的錯(cuò)誤: 表明程序遇到了致命的錯(cuò)誤,必須馬上終止運(yùn)行。
總結(jié)
到此這篇關(guān)于logback-spring.xml的配置及示例詳解的文章就介紹到這了,更多相關(guān)logback-spring.xml配置詳解內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java 實(shí)現(xiàn)最小二叉樹(shù)堆排序的實(shí)例
這篇文章主要介紹了java 實(shí)現(xiàn)最小二叉樹(shù)堆排序的實(shí)例的相關(guān)資料,希望通過(guò)本文能幫助到大家,需要的朋友可以參考下2017-09-09帶你了解Java數(shù)據(jù)結(jié)構(gòu)和算法之?dāng)?shù)組
這篇文章主要為大家介紹了Java數(shù)據(jù)結(jié)構(gòu)和算法之?dāng)?shù)組,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-01-01javafx tableview鼠標(biāo)觸發(fā)更新屬性詳解
這篇文章主要為大家詳細(xì)介紹了javafx tableview鼠標(biāo)觸發(fā)更新屬性的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08java返回集合為null還是空集合及空集合的三種寫(xiě)法小結(jié)
這篇文章主要介紹了java返回集合為null還是空集合及空集合的三種寫(xiě)法小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11Session過(guò)期后自動(dòng)跳轉(zhuǎn)到登錄頁(yè)面的實(shí)例代碼
這篇文章主要介紹了Session過(guò)期后自動(dòng)跳轉(zhuǎn)到登錄頁(yè)面實(shí)例代碼,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06