Spring boot使用logback實現(xiàn)日志管理過程詳解
Springboot默認集成的就是logback,logback相對來說是優(yōu)秀于log4j的,log4j2也是參考了logback的設計。本篇就是來看看如何使用logback。
1.導入jar包
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </dependency>
2.創(chuàng)建logback-spring.xml配置文件
<?xml version="1.0" encoding="UTF-8"?> <!-- scan 配置文件如果發(fā)生改變,將會被重新加載 scanPeriod 檢測間隔時間--> <configuration scan="true" scanPeriod="60 seconds" debug="false"> <contextName>zlyPay-log</contextName> <!-- info 地址 --> <property name="log.path" value="D:\\log\\" /> <property name="log.file" value="D:\\log\\logback.log" /> <!-- errr,錯誤路徑 --> <property name="log.path.error" value="D:\\log\\error\\" /> <property name="log.file.error" value="D:\\log\\error\\logback-error.log" /> <!--警告路徑 --> <property name="log.path.warn" value="D:\\log\\warn\\" /> <property name="log.file.warn" value="D:\\log\\warn\\logback-error.log" /> <include resource="org/springframework/boot/logging/logback/base.xml"/> <!-- 普通日志 --> <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${log.file}</file> <!-- 循環(huán)政策:基于時間創(chuàng)建日志文件 --> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- 日志命名:單個文件大于128MB 按照時間+自增i 生成log文件 --> <fileNamePattern>${log.path}zlyPay-log-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>512MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> <!-- 最大保存時間:30天--> <maxHistory>30</maxHistory> </rollingPolicy> <append>true</append> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern> <charset>utf-8</charset> </encoder> <!-- 顯示所有的日志記錄 <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>info</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> --> </appender> <!-- 錯誤日志 --> <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${log.file.error}</file> <!-- 循環(huán)政策:基于時間創(chuàng)建日志文件 --> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- 日志命名:單個文件大于2MB 按照時間+自增i 生成log文件 --> <fileNamePattern>${log.path.error}zlyPay-log-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>128MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> <!-- 最大保存時間:180天--> <maxHistory>180</maxHistory> </rollingPolicy> <append>true</append> <!-- 日志格式 --> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern> <charset>utf-8</charset> </encoder> <!-- 日志級別過濾器 --> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <!-- 過濾的級別 --> <level>ERROR</level> <!-- 匹配時的操作:接收(記錄) --> <onMatch>ACCEPT</onMatch> <!-- 不匹配時的操作:拒絕(不記錄) --> <onMismatch>DENY</onMismatch> </filter> </appender> <!-- 控制臺 --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <!-- 日志格式 --> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern> <charset>utf-8</charset> </encoder> <!--此日志appender是為開發(fā)使用,只配置最底級別,控制臺輸出的日志級別是大于或等于此級別的日志信息--> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <!-- 只有這個日志權(quán)限才能看,sql語句 --> <level>DEBUG</level> </filter> </appender> <!-- 警告信息 --> <appender name="STDOUT" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!-- 循環(huán)政策:基于時間創(chuàng)建日志文件 --> <file>${log.file.warn}</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- 日志命名:單個文件大于2MB 按照時間+自增i 生成log文件 --> <fileNamePattern>${log.path.warn}zlyPay-log-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>128MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> <!-- 最大保存時間:180天--> <maxHistory>180</maxHistory> </rollingPolicy> <append>true</append> <!-- 日志格式 --> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <!--<Pattern>${ENCODER_PATTERN}</Pattern>--> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %X{QTRACER} %X{MDCContextId}-%X{MDCSupplyService}-%X{MDCSupplyRetryTime} %-5level %logger{0} - %msg%n</pattern> </encoder> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>warn</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> </appender> <!-- 輸出sql日志 --> <logger name="org.jcut.dao" level="DEBUG"></logger> <!-- additivity 避免執(zhí)行2次--> <logger name="com.cltx" level="INFO" additivity="false"> <appender-ref ref="STDOUT"/> <appender-ref ref="INFO_FILE"/> <appender-ref ref="ERROR_FILE"/> </logger> <root level="INFO"> <appender-ref ref="STDOUT" /> <appender-ref ref="INFO_FILE" /> <appender-ref ref="ERROR_FILE" /> </root> </configuration>
3.application.properties文件中加入日志文件路徑
#加載指定的日志配置文件
logging.config=classpath:logback-spring.xml
#調(diào)試環(huán)境用DEBUG,生產(chǎn)環(huán)境用info
logging.level.root=DEBUG
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Java中IO流 RandomAccessFile類實例詳解
這篇文章主要介紹了Java中IO流 RandomAccessFile類實例詳解的相關資料,需要的朋友可以參考下2017-05-05Java實現(xiàn)經(jīng)典游戲黃金礦工的示例代碼
《黃金礦工》游戲是一個經(jīng)典的抓金子小游戲,它可以鍛煉人的反應能力。本文將用Java實現(xiàn)這一經(jīng)典的游戲,感興趣的小伙伴可以了解一下2022-02-02mybatis-plus報錯Not Found TableInfoCache異常問題
在集成百度uid-generator過程中,MyBatis-Plus報錯NotFoundTableInfoCache異常,解決方法:檢查實體類是否繼承了官方model,確保實體類對應的mapper已正確注入,在使用@Component注解時,應保證相關依賴已注入2024-09-09Java利用EasyExcel實現(xiàn)導出導入功能的示例代碼
EasyExcel是一個基于Java的、快速、簡潔、解決大文件內(nèi)存溢出的Excel處理工具。本文廢話不多說,直接上手試試,用代碼試試EasyExcel是否真的那么好用2022-11-11java9新特性Collection集合類的增強與優(yōu)化方法示例
這篇文章主要為大家介紹了java9新特性Collection集合類的增強與優(yōu)化方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步2022-03-03