logback-spring.xml

  • logback.xml:直接就被日志框架識別了;
  • logback-spring.xml:日志框架就不直接加載日志的配置項,由SpringBoot解析日志配置,可以使用SpringBoot 的高級Pro?le功能
<?xml version="1.0" encoding="UTF-8"?>
<!--
scan:當(dāng)此屬性設(shè)置為true時,配置文件如果發(fā)生改變,將會被重新加載,默認(rèn)值為true。
scanPeriod:設(shè)置監(jiān)測配置文件是否有修改的時間間隔,如果沒有給出時間單位,默認(rèn)單位是毫秒當(dāng)scan為true時,此屬性生效。默認(rèn)的時間間隔為1分鐘。
debug:當(dāng)此屬性設(shè)置為true時,將打印出logback內(nèi)部日志信息,實(shí)時查看logback運(yùn)行狀態(tài)。默認(rèn)值為false。
-->
<configuration scan="false" scanPeriod="60 seconds" debug="false">
   <!-- 定義日志的根目錄 -->
   <property name="LOG_HOME" value="/app/log" />
   <!-- 定義日志文件名稱 -->
   <property name="appName" value="atguigu-springboot"></property>
   <!-- ch.qos.logback.core.ConsoleAppender 表示控制臺輸出 -->
   <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
       <!--
       日志輸出格式:
           %d表示日期時間,
           %thread表示線程名,
           %-5level:級別從左顯示5個字符寬度
           %logger{50} 表示logger名字最長50個字符,否則按照句點(diǎn)分割。 
           %msg:日志消息,
           %n是換行符
       -->
       <layout class="ch.qos.logback.classic.PatternLayout">
           <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
       </layout>
   </appender>

   <!-- 滾動記錄文件,先將日志記錄到指定文件,當(dāng)符合某個條件時,將日志記錄到其他文件 -->  
   <appender name="appLogAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
       <!-- 指定日志文件的名稱 -->
       <file>${LOG_HOME}/${appName}.log</file>
       <!--
       當(dāng)發(fā)生滾動時,決定 RollingFileAppender 的行為,涉及文件移動和重命名
       TimeBasedRollingPolicy: 最常用的滾動策略,它根據(jù)時間來制定滾動策略,既負(fù)責(zé)滾動也負(fù)責(zé)出發(fā)滾動。
       -->
       <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
           <!--
           滾動時產(chǎn)生的文件的存放位置及文件名稱 %d{yyyy-MM-dd}:按天進(jìn)行日志滾動 
           %i:當(dāng)文件大小超過maxFileSize時,按照i進(jìn)行文件滾動
           -->
           <fileNamePattern>${LOG_HOME}/${appName}-%d{yyyy-MM-dd}-%i.log</fileNamePattern>
           <!-- 
           可選節(jié)點(diǎn),控制保留的歸檔文件的最大數(shù)量,超出數(shù)量就刪除舊文件。假設(shè)設(shè)置每天滾動,
           且maxHistory是365,則只保存最近365天的文件,刪除之前的舊文件。注意,刪除舊文件是,
           那些為了歸檔而創(chuàng)建的目錄也會被刪除。
           -->
           <MaxHistory>365</MaxHistory>
           <!-- 
           當(dāng)日志文件超過maxFileSize指定的大小是,根據(jù)上面提到的%i進(jìn)行日志文件滾動 注意此處配置SizeBasedTriggeringPolicy是無法實(shí)現(xiàn)按文件大小進(jìn)行滾動的,必須配置timeBasedFileNamingAndTriggeringPolicy
           -->
           <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
               <maxFileSize>100MB</maxFileSize>
           </timeBasedFileNamingAndTriggeringPolicy>
       </rollingPolicy>
       <!-- 日志輸出格式: -->     
       <layout class="ch.qos.logback.classic.PatternLayout">
           <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [ %thread ] - [ %-5level ] [ %logger{50} : %line ] - %msg%n</pattern>
       </layout>
   </appender>

   <!-- 
       logger主要用于存放日志對象,也可以定義日志類型、級別
       name:表示匹配的logger類型前綴,也就是包的前半部分
       level:要記錄的日志級別,包括 TRACE < DEBUG < INFO < WARN < ERROR
       additivity:作用在于children-logger是否使用 rootLogger配置的appender進(jìn)行輸出,
       false:表示只用當(dāng)前l(fā)ogger的appender-ref,true:
       表示當(dāng)前l(fā)ogger的appender-ref和rootLogger的appender-ref都有效
   -->
   <!-- hibernate logger -->
   <logger name="com.atguigu" level="debug" />
   <!-- Spring framework logger -->
   <logger name="org.springframework" level="debug" additivity="false"></logger>



   <!-- 
   root與logger是父子關(guān)系,沒有特別定義則默認(rèn)為root,任何一個類只會和一個logger對應(yīng),
   要么是定義的logger,要么是root,判斷的關(guān)鍵在于找到這個logger,然后判斷這個logger的appender和level。 
   -->
   <root level="info">
       <appender-ref ref="stdout" />
       <appender-ref ref="appLogAppender" />
   </root>
</configuration> 
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容