logback-spring.xml的內(nèi)容格式詳解
一、logback-spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="10 seconds" >
<!-- <statusListener> 標(biāo)簽用于指定日志記錄器的狀態(tài)監(jiān)聽器。 -->
<!-- NopStatusListener 是一個(gè)空操作的監(jiān)聽器,它不會(huì)進(jìn)行任何操作,僅僅是為了占位,避免了配置文件中沒有狀態(tài)監(jiān)聽器而出現(xiàn)的錯(cuò)誤。-->
<statusListener class = "ch.qos.logback.core.status.NopStatusListener"/>
<contextName>loback</contextName>
<property name="log.path" value="./ieconfiglog/nmys" />
<!-- 輸出到控制臺(tái)-->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<!-- 此日志appender是開發(fā)使用,只配置最低級(jí)別,控制臺(tái)輸出的日志級(jí)別是大于或等于此級(jí)別的日志信息 -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>info</level>
</filter>
<encoder>
<Pattern> %-5p [%d][%mdc{mdc_accNo}] %C:%L - %m %n</Pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<!-- 輸出到文件 -->
<!-- 時(shí)間滾動(dòng)輸出 level為 ERROR 日志 -->
<!-- 該 appender 的 class 屬性指定了 Logback 中的 RollingFileAppender 類,表示使用該類來將日志記錄到文件并做日志滾動(dòng)。 -->
<appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在記錄的日志文件的路徑及文件名 -->
<file>${log.path}/log_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)策略,按日志,按大小記錄 -->
<!-- TimeBasedRollingPolicy 類作為日志滾動(dòng)策略,表示按時(shí)間滾動(dòng)日志文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志歸檔 -->
<fileNamePattern>${log.path}/error/log-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>
<!-- 時(shí)間滾動(dòng)輸出 level 為 DEBUG 日志 -->
<appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在記錄的日志文件的路徑及文件名 -->
<file>${log.path}/log_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)策略,按日期,按大小記錄 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志歸檔 -->
<fileNamePattern>${log.path}/debug/log-debug-%d{yyyy-MM-dd}.%i.log
</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日志文件保留天數(shù) -->
<maxHistory>15</maxHistory>
</rollingPolicy>
<!-- 此日志文件只記錄debug級(jí)別的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>debug</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 時(shí)間滾動(dòng)輸出 level為 INFO 日志 -->
<appender name="INFO_FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在記錄的日志文件的路徑及文件名 -->
<file>${log.path}/log_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>${log.path}/info/log-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>
<root level="info">
<appender-ref ref="INFO_FILE" />
<appender-ref ref="CONSOLE" />
</root>
<logger name="com/example/ie" level="ERROR">
<appender-ref ref="ERROR_FILE"/>
</logger>
<logger name="com/example/ie" level="DEBUG">
<appender-ref ref="DEBUG_FILE"/>
</logger>
<logger name="com.mysql.jdbc" level="DEBUG">
<appender-ref ref="DEBUG_FILE"/>
</logger>
</configuration>二、Logback 中的三種日志文件類型
ERROR_FILE、DEBUG_FILE 和 INFO_FILE 是 Logback 中的三種日志文件類型,分別用于記錄不同級(jí)別的日志信息。
ERROR_FILE:該類型的日志文件用于記錄 ERROR 級(jí)別的日志信息,即只記錄應(yīng)用程序中出現(xiàn)的錯(cuò)誤和異常相關(guān)的日志信息。例如:
2021-08-31 15:43:56,857 [main] ERROR com.example.MyApplication - Something went wrong: java.lang.NullPointerException
at com.example.MyApplication.run(MyApplication.java:25)
at com.example.MyApplication.main(MyApplication.java:11)
DEBUG_FILE:該類型的日志文件用于記錄 DEBUG 級(jí)別的日志信息,即記錄應(yīng)用程序中詳細(xì)的調(diào)試信息,例如調(diào)用方法、變量值等。通常用于開發(fā)和測試環(huán)境中。例如:
2021-08-31 15:43:56,857 [main] DEBUG com.example.MyController - Request received: GET /api/v1/users?page=1&pageSize=10
2021-08-31 15:43:56,857 [main] DEBUG com.example.MyService - Retrieving users from database...
2021-08-31 15:43:56,857 [main] DEBUG com.example.MyService - Found 8 users in database
2021-08-31 15:43:56,857 [main] DEBUG com.example.MyController - Response sent: [{"id":1,"name":"Alice"},{"id":2,"name":"Bob"},...]
INFO_FILE:該類型的日志文件用于記錄 INFO 級(jí)別的日志信息,即一些重要的業(yè)務(wù)信息或應(yīng)用程序運(yùn)行狀態(tài)的變化信息,例如啟動(dòng)和關(guān)閉應(yīng)用程序、連接數(shù)據(jù)庫等。例如:
2021-08-31 15:43:56,857 [main] INFO com.example.MyApplication - Starting application...
2021-08-31 15:43:57,205 [main] INFO com.example.MyApplication - Application started successfully
2021-08-31 15:44:07,876 [main] INFO com.example.MyService - Connecting to database: jdbc:postgresql://localhost:5432/mydb
2021-08-31 15:44:08,229 [main] INFO com.example.MyService - Connected to database successfully
到此這篇關(guān)于logback-spring.xml的內(nèi)容格式的文章就介紹到這了,更多相關(guān)logback-spring.xml內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
springboot中ApplicationRunner執(zhí)行順序問題小結(jié)
SpringBoot中ApplicationRunner用于應(yīng)用啟動(dòng)后執(zhí)行初始化任務(wù),通過@Order注解可控制多個(gè)Runner的執(zhí)行順序,數(shù)值越小越優(yōu)先,下面就一起來了解一下2025-06-06
SpringBoot集成Redis實(shí)現(xiàn)驗(yàn)證碼的簡單案例
本文主要介紹了SpringBoot集成Redis實(shí)現(xiàn)驗(yàn)證碼的簡單案例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08
Dubbo在Spring和Spring Boot中的使用詳解
這篇文章主要介紹了Dubbo在Spring和Spring Boot中的使用詳解,需要的朋友可以參考下2017-10-10
Java反射的應(yīng)用之動(dòng)態(tài)代理深入理解
這篇文章主要介紹了Java反射的應(yīng)用之動(dòng)態(tài)代理深入理解,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09
Java使用WebView實(shí)現(xiàn)桌面程序的技術(shù)指南
在現(xiàn)代軟件開發(fā)中,許多應(yīng)用需要在桌面程序中嵌入 Web 頁面,例如,你可能需要在 Java 桌面應(yīng)用中嵌入一部分 Web 前端,或者加載一個(gè) HTML5 界面以增強(qiáng)用戶體驗(yàn),所以本文給大家介紹了Java使用WebView實(shí)現(xiàn)桌面程序的技術(shù)指南,需要的朋友可以參考下2025-05-05

