Spring boot使用logback實現(xiàn)日志管理過程詳解
Springboot默認集成的就是logback,logback相對來說是優(yōu)秀于log4j的,log4j2也是參考了logback的設(shè)計。本篇就是來看看如何使用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ā)生改變,將會被重新加載 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:loglogback.log' /> <!-- errr,錯誤路徑 --> <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)政策:基于時間創(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)境用infologging.level.root=DEBUG
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. python實現(xiàn)讀取類別頻數(shù)數(shù)據(jù)畫水平條形圖案例2. msxml3.dll 錯誤 800c0019 系統(tǒng)錯誤:-2146697191解決方法3. ASP中格式化時間短日期補0變兩位長日期的方法4. 解析原生JS getComputedStyle5. HTML5 Canvas繪制圖形從入門到精通6. WML語言的基本情況7. XHTML 1.0:標記新的開端8. ASP基礎(chǔ)入門第八篇(ASP內(nèi)建對象Application和Session)9. xpath簡介_動力節(jié)點Java學(xué)院整理10. JSP的Cookie在登錄中的使用
