<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区免费| 黄色大片免费网站| 久99久无码精品视频免费播放| 成人久久免费网站| 青青青国产在线观看免费| 四虎免费在线观看| 久久亚洲AV无码西西人体| 亚洲精品天天影视综合网| 自拍偷区亚洲国内自拍| 日韩精品免费一线在线观看| 久久国产精品免费专区| 免费观看成人毛片a片2008| 亚洲日韩国产精品乱| 久久亚洲精品中文字幕| 亚洲精品无码久久久久A片苍井空| 九九九精品视频免费| 麻豆成人久久精品二区三区免费| 成人A级毛片免费观看AV网站| 亚洲а∨天堂久久精品| 97亚洲熟妇自偷自拍另类图片| 亚洲另类无码专区首页| 国产真人无码作爱免费视频| 青青青国产在线观看免费网站| 亚洲AV无码专区日韩| 337p日本欧洲亚洲大胆色噜噜| 蜜芽亚洲av无码一区二区三区| 日本三级在线观看免费| 免费人成视频在线| 亚洲真人无码永久在线| 亚洲精品午夜国产va久久| 男女一进一出抽搐免费视频| 免费可以在线看A∨网站| 亚洲色无码专区在线观看| 亚洲综合在线一区二区三区 | 亚洲国产精品网站在线播放 | 精品国产麻豆免费人成网站| 成人啪精品视频免费网站| 国产亚洲精品无码成人| 亚洲成av人在线观看网站| 69pao强力打造免费高清|