Spring boot使用logback實(shí)現(xiàn)日志管理過程詳解
Springboot默認(rèn)集成的就是logback,logback相對(duì)來說是優(yōu)秀于log4j的,log4j2也是參考了logback的設(shè)計(jì)。本篇就是來看看如何使用logback。
1.導(dǎo)入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ā)生改變,將會(huì)被重新加載 scanPeriod 檢測(cè)間隔時(shí)間--> <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,錯(cuò)誤路徑 --> <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)政策:基于時(shí)間創(chuàng)建日志文件 --> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- 日志命名:單個(gè)文件大于128MB 按照時(shí)間+自增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> <!-- 最大保存時(shí)間: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> <!-- 錯(cuò)誤日志 --> <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${log.file.error}</file> <!-- 循環(huán)政策:基于時(shí)間創(chuàng)建日志文件 --> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- 日志命名:單個(gè)文件大于2MB 按照時(shí)間+自增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> <!-- 最大保存時(shí)間: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> <!-- 日志級(jí)別過濾器 --> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <!-- 過濾的級(jí)別 --> <level>ERROR</level> <!-- 匹配時(shí)的操作:接收(記錄) --> <onMatch>ACCEPT</onMatch> <!-- 不匹配時(shí)的操作:拒絕(不記錄) --> <onMismatch>DENY</onMismatch> </filter> </appender> <!-- 控制臺(tái) --> <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ā)使用,只配置最底級(jí)別,控制臺(tái)輸出的日志級(jí)別是大于或等于此級(jí)別的日志信息--> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <!-- 只有這個(gè)日志權(quán)限才能看,sql語句 --> <level>DEBUG</level> </filter> </appender> <!-- 警告信息 --> <appender name="STDOUT" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!-- 循環(huán)政策:基于時(shí)間創(chuàng)建日志文件 --> <file>${log.file.warn}</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- 日志命名:單個(gè)文件大于2MB 按照時(shí)間+自增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> <!-- 最大保存時(shí)間: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
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- SpringBoot項(xiàng)目的logback日志配置(包括打印mybatis的sql語句)
- Spring Boot日志技術(shù)logback原理及配置解析
- SpringBoot logback日志框架使用過程解析
- 基于spring boot 日志(logback)報(bào)錯(cuò)的解決方式
- Spring Boot異步輸出Logback日志方法詳解
- 基于logback 實(shí)現(xiàn)springboot超級(jí)詳細(xì)的日志配置
- Spring Boot整合logback一個(gè)簡(jiǎn)單的日志集成架構(gòu)
- Logback日志存放路徑不統(tǒng)一解決方案
相關(guān)文章
javaweb中Filter(過濾器)的常見應(yīng)用
這篇文章主要介紹了javaweb中Filter的常見應(yīng)用,過濾器的使用方法,感興趣的小伙伴們可以參考一下2015-12-12Java中IO流 RandomAccessFile類實(shí)例詳解
這篇文章主要介紹了Java中IO流 RandomAccessFile類實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-05-05Java實(shí)現(xiàn)經(jīng)典游戲黃金礦工的示例代碼
《黃金礦工》游戲是一個(gè)經(jīng)典的抓金子小游戲,它可以鍛煉人的反應(yīng)能力。本文將用Java實(shí)現(xiàn)這一經(jīng)典的游戲,感興趣的小伙伴可以了解一下2022-02-02mybatis-plus報(bào)錯(cuò)Not Found TableInfoCache異常問題
在集成百度uid-generator過程中,MyBatis-Plus報(bào)錯(cuò)NotFoundTableInfoCache異常,解決方法:檢查實(shí)體類是否繼承了官方model,確保實(shí)體類對(duì)應(yīng)的mapper已正確注入,在使用@Component注解時(shí),應(yīng)保證相關(guān)依賴已注入2024-09-09Java利用EasyExcel實(shí)現(xiàn)導(dǎo)出導(dǎo)入功能的示例代碼
EasyExcel是一個(gè)基于Java的、快速、簡(jiǎn)潔、解決大文件內(nèi)存溢出的Excel處理工具。本文廢話不多說,直接上手試試,用代碼試試EasyExcel是否真的那么好用2022-11-11java9新特性Collection集合類的增強(qiáng)與優(yōu)化方法示例
這篇文章主要為大家介紹了java9新特性Collection集合類的增強(qiáng)與優(yōu)化方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-03-03