<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    paulwong

    logback logback.xml 常用配置詳解

    閱讀背景: 您可能需要對log4j,sl4j 有一些初步的了解。

    閱讀目的:深刻的理解logback的常用配置<Configuration> AND <logger>


    1 : 根節點<Configuration>包含的屬性

        一:<Configuration >包含的屬性

    scan:

    當此屬性設置為true時,配置文件如果發生改變,將會被重新加載,默認值為true。

    scanPeriod:

    設置監測配置文件是否有修改的時間間隔,如果沒有給出時間單位,默認單位是毫秒。當scan為true時,此屬性生效。默認的時間間隔為1分鐘。

    debug:

    當此屬性設置為true時,將打印出logback內部日志信息,實時查看logback運行狀態。默認值為false。

    1
    2
    3
    <configuration scan="true" scanPeriod="60 seconds" debug="false">  
          <!-- 其他配置省略-->  
    </configuration>

    2.2設置變量: <property>

    用來定義變量值的標簽,<property> 有兩個屬性,name和value;其中name的值是變量的名稱,value的值時變量定義的值。通過<property>定義的值會被插入到logger上下文中。定義變量后,可以使“${}”來使用變量。

    例如使用<property>定義上下文名稱,然后在<contentName>設置logger上下文時使用。

        

    1
    2
    3
    4
    5
    <configuration scan="true" scanPeriod="60 seconds" debug="false">  
          <property name="APP_Name" value="myAppName" />   
          <contextName>${APP_Name}</contextName>  
          <!-- 其他配置省略-->  
    </configuration>

       2.3 獲取時間撮字符串

            

    兩個屬性 key:標識此<timestamp> 的名字;datePattern:設置將當前時間(解析配置文件的時間)轉換為字符串的模式,遵循java.txt.SimpleDateFormat的格式。

            例如將解析配置文件的時間作為上下文名稱:


         

    1
    2
    3
    4
    5
    <configuration scan="true" scanPeriod="60 seconds" debug="false">  
          <timestamp key="bySecond" datePattern="yyyyMMdd'T'HHmmss"/>   
          <contextName>${bySecond}</contextName>  
          <!-- 其他配置省略-->  
    </configuration>


    2.4設置loger:

    <loger>

    用來設置某一個包或者具體的某一個類的日志打印級別、以及指定<appender>。<loger>僅有一個name屬性,一個可選的level和一個可選的addtivity屬性。

    name:

    用來指定受此loger約束的某一個包或者具體的某一個類。

    level:

    用來設置打印級別,大小寫無關:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,還有一個特俗值INHERITED或者同義詞NULL,代表強制執行上級的級別。

    如果未設置此屬性,那么當前loger將會繼承上級的級別。

    addtivity:

    是否向上級loger傳遞打印信息。默認是true。

    <loger>可以包含零個或多個<appender-ref>元素,標識這個appender將會添加到這個loger。

     

    <root>

    也是<loger>元素,但是它是根loger。只有一個level屬性,應為已經被命名為"root".

    level:

    用來設置打印級別,大小寫無關:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,不能設置為INHERITED或者同義詞NULL。

    默認是DEBUG。

    <root>可以包含零個或多個<appender-ref>元素,標識這個appender將會添加到這個loger。

     

    logback.xml配置文件

     

    第1種:只配置root

    Xml代碼  收藏代碼

    1. <configuration>   

    2.    

    3.   <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">   

    4.     <!-- encoder 默認配置為PatternLayoutEncoder -->   

    5.     <encoder>   

    6.       <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>   

    7.     </encoder>   

    8.   </appender>   

    9.    

    10.   <root level="INFO">             

    11.     <appender-ref ref="STDOUT" />   

    12.   </root>     

    13.      

    14.  </configuration>  

     其中appender的配置表示打印到控制臺(稍后詳細講解appender );

    <root level="INFO">將root的打印級別設置為“INFO”,指定了名字為“STDOUT”的appender。

     

    當執行logback.LogbackDemo類的main方法時,root將級別為“INFO”及大于“INFO”的日志信息交給已經配置好的名為“STDOUT”的appender處理,“STDOUT”appender將信息打印到控制臺;

    打印結果如下:

    Xml代碼  收藏代碼

    1. 13:30:38.484 [main] INFO  logback.LogbackDemo - ======info  

    2. 13:30:38.500 [main] WARN  logback.LogbackDemo - ======warn  

    3. 13:30:38.500 [main] ERROR logback.LogbackDemo - ======error  

     

      第2種:帶有loger的配置,不指定級別,不指定appender,

    Xml代碼  收藏代碼

    1. <configuration>   

    2.    

    3.   <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">   

    4.     <!-- encoder 默認配置為PatternLayoutEncoder -->   

    5.     <encoder>   

    6.       <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>   

    7.     </encoder>   

    8.   </appender>   

    9.    

    10.   <!-- logback為java中的包 -->   

    11.   <logger name="logback"/>   

    12.    

    13.   <root level="DEBUG">             

    14.     <appender-ref ref="STDOUT" />   

    15.   </root>     

    16.      

    17.  </configuration>  

     其中appender的配置表示打印到控制臺(稍后詳細講解appender );

    <logger name="logback" />將控制logback包下的所有類的日志的打印,但是并沒用設置打印級別,所以繼承他的上級<root>的日志級別“DEBUG”;

    沒有設置addtivity,默認為true,將此loger的打印信息向上級傳遞;

    沒有設置appender,此loger本身不打印任何信息。

    <root level="DEBUG">將root的打印級別設置為“DEBUG”,指定了名字為“STDOUT”的appender。

     

    當執行logback.LogbackDemo類的main方法時,因為LogbackDemo 在包logback中,所以首先執行<logger name="logback" />,將級別為“DEBUG”及大于“DEBUG”的日志信息傳遞給root,本身并不打?。?/p>

    root接到下級傳遞的信息,交給已經配置好的名為“STDOUT”的appender處理,“STDOUT”appender將信息打印到控制臺;

    打印結果如下:

    Xml代碼  收藏代碼

    1. 13:19:15.406 [main] DEBUG logback.LogbackDemo - ======debug  

    2. 13:19:15.406 [main] INFO  logback.LogbackDemo - ======info  

    3. 13:19:15.406 [main] WARN  logback.LogbackDemo - ======warn  

    4. 13:19:15.406 [main] ERROR logback.LogbackDemo - ======error  

     

     第3種:帶有多個loger的配置,指定級別,指定appender  

    Xml代碼  收藏代碼

    1. <configuration>   

    2.    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">   

    3.     <!-- encoder 默認配置為PatternLayoutEncoder -->   

    4.     <encoder>   

    5.       <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>   

    6.     </encoder>   

    7.   </appender>   

    8.    

    9.   <!-- logback為java中的包 -->   

    10.   <logger name="logback"/>   

    11.   <!--logback.LogbackDemo:類的全路徑 -->   

    12.   <logger name="logback.LogbackDemo" level="INFO" additivity="false">  

    13.     <appender-ref ref="STDOUT"/>  

    14.   </logger>   

    15.     

    16.   <root level="ERROR">             

    17.     <appender-ref ref="STDOUT" />   

    18.   </root>     

    19. </configuration>  

    其中appender的配置表示打印到控制臺(稍后詳細講解appender );

     

    <logger name="logback" />將控制logback包下的所有類的日志的打印,但是并沒用設置打印級別,所以繼承他的上級<root>的日志級別“DEBUG”;

    沒有設置addtivity,默認為true,將此loger的打印信息向上級傳遞;

    沒有設置appender,此loger本身不打印任何信息。

     

     <logger name="logback.LogbackDemo" level="INFO" additivity="false">控制logback.LogbackDemo類的日志打印,打印級別為“INFO”;

    additivity屬性為false,表示此loger的打印信息不再向上級傳遞,

    指定了名字為“STDOUT”的appender。

     

    <root level="ERROR">將root的打印級別設置為“ERROR”,指定了名字為“STDOUT”的appender。

     

     當執行logback.LogbackDemo類的main方法時,先執行<logger name="logback.LogbackDemo" level="INFO" additivity="false">,將級別為“INFO”及大于“INFO”的日志信息交給此loger指定的名為“STDOUT”的appender處理,在控制臺中打出日志,不再向次loger的上級 <logger name="logback"/> 傳遞打印信息;

    <logger name="logback"/>未接到任何打印信息,當然也不會給它的上級root傳遞任何打印信息;

    打印結果如下:  

    Xml代碼  收藏代碼

    1. 14:05:35.937 [main] INFO  logback.LogbackDemo - ======info  

    2. 14:05:35.937 [main] WARN  logback.LogbackDemo - ======warn  

    3. 14:05:35.937 [main] ERROR logback.LogbackDemo - ======error  

     如果將<logger name="logback.LogbackDemo" level="INFO" additivity="false">修改為 <logger name="logback.LogbackDemo" level="INFO" additivity="true">那打印結果將是什么呢?

    沒錯,日志打印了兩次,想必大家都知道原因了,因為打印信息向上級傳遞,logger本身打印一次,root接到后又打印一次

    打印結果如下:  

    Xml代碼  收藏代碼

    1. 14:09:01.531 [main] INFO  logback.LogbackDemo - ======info  

    2. 14:09:01.531 [main] INFO  logback.LogbackDemo - ======info  

    3. 14:09:01.531 [main] WARN  logback.LogbackDemo - ======warn  

    4. 14:09:01.531 [main] WARN  logback.LogbackDemo - ======warn  

    5. 14:09:01.531 [main] ERROR logback.LogbackDemo - ======error  

    6. 14:09:01.531 [main] ERROR logback.LogbackDemo - ======error  

    posted on 2014-09-11 08:53 paulwong 閱讀(3473) 評論(0)  編輯  收藏 所屬分類: LOGBACK


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 国产人成免费视频| 欧美a级成人网站免费| 亚洲国产av一区二区三区| 亚洲精品日韩一区二区小说| 毛片免费视频播放| 亚洲一区精彩视频| 91精品免费国产高清在线| 亚洲国产亚洲片在线观看播放| 99re热精品视频国产免费| 久久久久亚洲av无码专区| 18禁成人网站免费观看| 在线亚洲高清揄拍自拍一品区| 一色屋成人免费精品网站| 亚洲一本一道一区二区三区| 午夜时刻免费入口| 免费观看又污又黄在线观看| 亚洲国产精品日韩专区AV| 成在人线av无码免费高潮水| 亚洲免费精彩视频在线观看| 老司机在线免费视频| 亚洲国产91在线| 亚洲成a人片在线观看日本麻豆| fc2免费人成在线| 久久精品国产亚洲| 国产精品久久久久免费a∨| 亚洲aⅴ无码专区在线观看 | 成人无码区免费A片视频WWW | 在线亚洲精品福利网址导航| 日韩免费电影网站| 亚洲va久久久久| 中文字幕中韩乱码亚洲大片 | 最近2019中文字幕mv免费看| 相泽南亚洲一区二区在线播放| 久久亚洲国产精品五月天婷| 又大又硬又爽又粗又快的视频免费| 亚洲午夜在线播放| 2048亚洲精品国产| 黄瓜视频影院在线观看免费| 一级做a爰片性色毛片免费网站 | 亚洲AV无码AV日韩AV网站| 亚洲午夜无码久久久久|