springboot日志logback配置
生活随笔
收集整理的這篇文章主要介紹了
springboot日志logback配置
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!-- 3 scan:當(dāng)此屬性設(shè)置為true時(shí),配置文件如果發(fā)生改變,將會(huì)被重新加載,默認(rèn)值為true。 4 scanPeriod:設(shè)置監(jiān)測(cè)配置文件是否有修改的時(shí)間間隔,如果沒有給出時(shí)間單位,默認(rèn)單位是毫秒;當(dāng)scan為true時(shí),此屬性生效。默認(rèn)的時(shí)間間隔為1分鐘。 5 debug:當(dāng)此屬性設(shè)置為true時(shí),將打印出logback內(nèi)部日志信息,實(shí)時(shí)查看logback運(yùn)行狀態(tài)。默認(rèn)值為false。 6 --> 7 <configuration scan="false" scanPeriod="60 seconds" debug="false"> 8 <!-- 定義日志的根目錄 --> 9 <property name="LOG_HOME" value="logs"/> 10 <!-- 定義日志文件名稱 --> 11 <property name="appName" value="log"></property> 12 <!-- ch.qos.logback.core.ConsoleAppender 表示控制臺(tái)輸出 --> 13 <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender"> 14 <!-- 15 日志輸出格式: 16 %d表示日期時(shí)間, 17 %thread表示線程名, 18 %-5level:級(jí)別從左顯示5個(gè)字符寬度 19 %logger{50} 表示logger名字最長(zhǎng)50個(gè)字符,否則按照句點(diǎn)分割。 20 %msg:日志消息, 21 %n是換行符 22 --> 23 <layout class="ch.qos.logback.classic.PatternLayout"> 24 <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} ==> [%thread] ==> %-5level %logger{50} - %msg%n</pattern> 25 </layout> 26 </appender> 27 28 <!-- 滾動(dòng)記錄文件,先將日志記錄到指定文件,當(dāng)符合某個(gè)條件時(shí),將日志記錄到其他文件 --> 29 <appender name="appLogAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> 30 <!-- 指定日志文件的名稱 --> 31 <file>${LOG_HOME}/${appName}.log</file> 32 <!-- 33 當(dāng)發(fā)生滾動(dòng)時(shí),決定 RollingFileAppender 的行為,涉及文件移動(dòng)和重命名 34 TimeBasedRollingPolicy: 最常用的滾動(dòng)策略,它根據(jù)時(shí)間來(lái)制定滾動(dòng)策略,既負(fù)責(zé)滾動(dòng)也負(fù)責(zé)出發(fā)滾動(dòng)。 35 --> 36 <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 37 <!-- 38 滾動(dòng)時(shí)產(chǎn)生的文件的存放位置及文件名稱 %d{yyyy-MM-dd}:按天進(jìn)行日志滾動(dòng) 39 %i:當(dāng)文件大小超過(guò)maxFileSize時(shí),按照i進(jìn)行文件滾動(dòng) 40 --> 41 <fileNamePattern>${LOG_HOME}/${appName}-%d{yyyy-MM-dd}-%i.log</fileNamePattern> 42 <!-- 43 可選節(jié)點(diǎn),控制保留的歸檔文件的最大數(shù)量,超出數(shù)量就刪除舊文件。假設(shè)設(shè)置每天滾動(dòng), 44 且maxHistory是365,則只保存最近365天的文件,刪除之前的舊文件。注意,刪除舊文件是, 45 那些為了歸檔而創(chuàng)建的目錄也會(huì)被刪除。 46 --> 47 <MaxHistory>365</MaxHistory> 48 <!-- 49 當(dāng)日志文件超過(guò)maxFileSize指定的大小時(shí),根據(jù)上面提到的%i進(jìn)行日志文件滾動(dòng) 50 注意此處配置SizeBasedTriggeringPolicy是無(wú)法實(shí)現(xiàn)按文件大小進(jìn)行滾動(dòng)的,必須配置timeBasedFileNamingAndTriggeringPolicy 51 --> 52 <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> 53 <maxFileSize>1KB</maxFileSize> 54 </timeBasedFileNamingAndTriggeringPolicy> 55 </rollingPolicy> 56 <!-- 日志輸出格式: --> 57 <layout class="ch.qos.logback.classic.PatternLayout"> 58 <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [ %thread ] - [ %-5level ] [ %logger{50} : %line ] - %msg%n</pattern> 59 </layout> 60 <filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 只打印ERROR日志 --> 61 <level>ERROR</level> 62 <onMatch>ACCEPT</onMatch> 63 <onMismatch>DENY</onMismatch> 64 </filter> 65 </appender> 66 67 <!--輸出到error--> 68 <appender name="appLogAppenderError" class="ch.qos.logback.core.rolling.RollingFileAppender"> 69 <!-- 指定日志文件的名稱 --> 70 <file>${LOG_HOME}/${appName}-error.log</file> 71 <!-- 72 當(dāng)發(fā)生滾動(dòng)時(shí),決定 RollingFileAppender 的行為,涉及文件移動(dòng)和重命名 73 TimeBasedRollingPolicy: 最常用的滾動(dòng)策略,它根據(jù)時(shí)間來(lái)制定滾動(dòng)策略,既負(fù)責(zé)滾動(dòng)也負(fù)責(zé)出發(fā)滾動(dòng)。 74 --> 75 <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 76 <!-- 77 滾動(dòng)時(shí)產(chǎn)生的文件的存放位置及文件名稱 %d{yyyy-MM-dd}:按天進(jìn)行日志滾動(dòng) 78 %i:當(dāng)文件大小超過(guò)maxFileSize時(shí),按照i進(jìn)行文件滾動(dòng) 79 --> 80 <fileNamePattern>${LOG_HOME}/${appName}-error-%d{yyyy-MM-dd}-%i.log</fileNamePattern> 81 <!-- 82 可選節(jié)點(diǎn),控制保留的歸檔文件的最大數(shù)量,超出數(shù)量就刪除舊文件。假設(shè)設(shè)置每天滾動(dòng), 83 且maxHistory是365,則只保存最近365天的文件,刪除之前的舊文件。注意,刪除舊文件是, 84 那些為了歸檔而創(chuàng)建的目錄也會(huì)被刪除。 85 --> 86 <MaxHistory>365</MaxHistory> 87 <!-- 88 當(dāng)日志文件超過(guò)maxFileSize指定的大小時(shí),根據(jù)上面提到的%i進(jìn)行日志文件滾動(dòng) 89 注意此處配置SizeBasedTriggeringPolicy是無(wú)法實(shí)現(xiàn)按文件大小進(jìn)行滾動(dòng)的,必須配置timeBasedFileNamingAndTriggeringPolicy 90 --> 91 <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> 92 <maxFileSize>1KB</maxFileSize> 93 </timeBasedFileNamingAndTriggeringPolicy> 94 </rollingPolicy> 95 <!-- 日志輸出格式: --> 96 <layout class="ch.qos.logback.classic.PatternLayout"> 97 <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [ %thread ] - [ %-5level ] [ %logger{50} : %line ] - %msg%n</pattern> 98 </layout> 99 <filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 只打印ERROR日志 --> 100 <level>ERROR</level> 101 <onMatch>ACCEPT</onMatch> 102 <onMismatch>DENY</onMismatch> 103 </filter> 104 </appender> 105 106 107 <!-- 108 logger主要用于存放日志對(duì)象,也可以定義日志類型、級(jí)別 109 name:表示匹配的logger類型前綴,也就是包的前半部分 110 level:要記錄的日志級(jí)別,包括 TRACE < DEBUG < INFO < WARN < ERROR 111 additivity:作用在于children-logger是否使用 rootLogger配置的appender進(jìn)行輸出, 112 false:表示只用當(dāng)前l(fā)ogger的appender-ref,true: 113 表示當(dāng)前l(fā)ogger的appender-ref和rootLogger的appender-ref都有效 114 --> 115 <!-- app logger --> 116 <logger name="com.qianxingniwo" level="debug"/> 117 <!-- Spring framework logger --> 118 <logger name="org.springframework" level="debug" additivity="false"></logger> 119 120 <!-- 121 root與logger是父子關(guān)系,沒有特別定義則默認(rèn)為root,任何一個(gè)類只會(huì)和一個(gè)logger對(duì)應(yīng), 122 要么是定義的logger,要么是root,判斷的關(guān)鍵在于找到這個(gè)logger,然后判斷這個(gè)logger的appender和level。 123 --> 124 <root level="info"> 125 <appender-ref ref="stdout"/> 126 <appender-ref ref="appLogAppender"/> 127 <appender-ref ref="appLogAppenderError"/> 128 </root> 129 </configuration>
?
轉(zhuǎn)載于:https://www.cnblogs.com/newAndHui/p/10670394.html
總結(jié)
以上是生活随笔為你收集整理的springboot日志logback配置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java学习--第50天讲到jquery
- 下一篇: 转:AbstractQueuedSync