Spring boot使用logback實(shí)現(xiàn)日志管理過(guò)程詳解
Springboot默認(rèn)集成的就是logback,logback相對(duì)來(lái)說(shuō)是優(yōu)秀于log4j的,log4j2也是參考了logback的設(shè)計(jì)。本篇就是來(lái)看看如何使用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:loglogback.log' /> <!-- errr,錯(cuò)誤路徑 --> <property name='log.path.error' value='D:logerror' /> <property name='log.file.error' value='D:logerrorlogback-error.log' /> <!--警告路徑 --> <property name='log.path.warn' value='D:logwarn' /> <property name='log.file.warn' value='D:logwarnlogback-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í)別過(guò)濾器 --> <filter class='ch.qos.logback.classic.filter.LevelFilter'> <!-- 過(guò)濾的級(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是為開(kāi)發(fā)使用,只配置最底級(jí)別,控制臺(tái)輸出的日志級(jí)別是大于或等于此級(jí)別的日志信息--> <filter class='ch.qos.logback.classic.filter.ThresholdFilter'> <!-- 只有這個(gè)日志權(quán)限才能看,sql語(yǔ)句 --> <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)境用infologging.level.root=DEBUG
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. 利用CSS3新特性創(chuàng)建透明邊框三角2. html清除浮動(dòng)的6種方法示例3. CSS3實(shí)例分享之多重背景的實(shí)現(xiàn)(Multiple backgrounds)4. vue實(shí)現(xiàn)將自己網(wǎng)站(h5鏈接)分享到微信中形成小卡片的超詳細(xì)教程5. 不要在HTML中濫用div6. 使用css實(shí)現(xiàn)全兼容tooltip提示框7. 詳解CSS偽元素的妙用單標(biāo)簽之美8. JavaScript數(shù)據(jù)類(lèi)型對(duì)函數(shù)式編程的影響示例解析9. CSS代碼檢查工具stylelint的使用方法詳解10. Vue3使用JSX的方法實(shí)例(筆記自用)
