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

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

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

    隨筆 - 22, 文章 - 0, 評論 - 1, 引用 - 0
    數據加載中……

    logback_doc_manual_06_layouts

    http://logback.qos.ch/manual/layouts.html
    PatternLayout
         轉換模式類似于C語言里的printf()。
    轉移字符:
         c{length}
         lo{length}
         logger{length}
              其中的length代表輸出的logger長度。
              設為0的話例外,僅輸出最右邊的logger名。
              其余情況會自動計算,盡量使得輸出的總字符串長度小于指定長度——但是,最右邊的logger名稱無論如何會完整保留,同時前面的每一級logger,最少會被精簡到1個字符。
              ——%c{1}
         C{length}
         class{length}
              打印調用者的類名稱,設置方法與上面一樣。
              性能不高。
         contextName
         cn
              打印logger在event最初綁定的logger context的名稱。
         d{pattern}
         date{pattern}
         d{pattern, timezone}
         date{pattern, timezone}
              輸入日志時間,使用java.text.SimpleDateFormat的日期格式化方法。
              如果不指定日期格式,默認使用ISO8601,也就是2006-10-20 14:06:49,812這種形式。
              ——%d
         F / file
              輸出java源文件的名稱。
              性能不高。
         caller{depth}
         caller{depth, evaluator-1, ... evaluator-n}
              打印日志事件的調用堆棧。
              使用評估器evaluator決定是否打印。
         L
         line
              輸出日志記錄請求發起的行數。
              性能不高。
         m
         msg
         message
              日志正文
              ——%m
         M
         method
              日志調用方法名。
              性能不高
         n
              操作系統對應的換行符
              ——%n
         p
         le
         level
              日志等級
         r
         relative
              應用程序啟動到日志創建的相對時間
         t
         thread
              線程名
              ——%t
         X{key:-defaultVal}
         mdc{key:-defaultVal}
              MDC信息
         ex{depth} 
         exception{depth} 
         throwable{depth} 
         ex{depth, evaluator-1, ..., evaluator-n} 
         exception{depth, evaluator-1, ..., evaluator-n} 
         throwable{depth, evaluator-1, ..., evaluator-n}
              輸出異常堆棧深度(如果有的話),默認full全部輸出。
              可以指定的參數值:
                   short:打印堆棧的第一行
                   full:打印所有行
                   任何數字:指定行數
              使用評估器evaluator決定是否打印。
         xEx{depth} 
         xException{depth} 
         xThrowable{depth} 
         xEx{depth, evaluator-1, ..., evaluator-n} 
         xException{depth, evaluator-1, ..., evaluator-n} 
         xThrowable{depth, evaluator-1, ..., evaluator-n}
              跟上面的類似,但是附加了包信息。
              如果包信息不準確(是猜測的),那么會自動在包信息前面附加一個“~”字符。
              如果在日志信息模式里,未指定任何異常格式,那么系統會自動在末尾加上一個%xEx。
              如果不想打印包信息(例如netbean里會出問題),那么在日志模式的末尾明確指定%ex即可,就會輸出不包含包信息的堆棧。
              如果想不打印任何異常堆棧信息,可以使用%nopex。
              ——%xEx
         nopex 
         nopexception          
              加上%nopex可以阻止系統自動在日志模式末尾添加%xEx——也就是完全禁止異常堆棧打印。
         marker
              輸出關聯的marker信息,如果marker多級關聯,會都打印出來。
         property{key}
              輸出key關聯的屬性——定義在logger context或者system properties里面。
         replace(p){r, t}
              將p中的所有符合r正則的字符串,都替換成t。
              例如%replace(%logger%msg){'\.', '/'},會將輸出的logger和msg信息中的點號都替換成斜杠。
         rEx{depth} 
         rootException{depth} 
         rEx{depth, evaluator-1, ..., evaluator-n} 
         rootException{depth, evaluator-1, ..., evaluator-n}
              類似于xEx,也會打印異常的包信息,但是會將root exception打印到前面,跟普通的異常打印順序是反著的。
         轉義百分號: \%
         正常情況下轉義字符會被正確分割,但有些時候例外,例如%date%nHello,系統會解析%nHello失敗。如果真的需要在%n后緊跟一個Hello,可以這樣:%date%n{}Hello
         我一般用這個:
         %d [%t] %-5p  %c{1} - %m%n
    ------------------------------------------------------------------
    Format modifiers
         控制數據段的補齊。
         例如 %20.30logger 
              如果logger長度小于20,則從左邊用空格補齊;如果logger長度大于30,則從開頭(左邊)切去多余字符。
              如果20或者30前面有負號,則左右顛倒。
         假如想給日志級別只輸出1個字符(T,D,W,I,E),不需要自己寫一個Converter,而只需要配置一下即可:%.-1level
    轉義選項:
         如果轉義選項里面包含特殊字符(特別是在使用正則表達式的時候),例如大小括號、逗號、空格,那么可以用單引號或雙引號括起來,例如:
              <pattern>%-5level - %replace(%msg){'\d{14,16}', 'XXXX'}%n</pattern>
         ——這個可以把14到16位的數字(信用卡號)轉換為XXXX。
    ------------------------------------------------------------------
    括號的特殊作用:
         %-30(%d{HH:mm:ss.SSS} [%thread]) %-5level %logger{32} - %msg%n
         可以讓括號里的兩個表達式聯合起來按照30個字符補齊。
         括號可以用反斜杠轉義:\(%d{HH:mm:ss.SSS} [%thread]\)
    ------------------------------------------------------------------
    Coloring
         著色,window需要引其它包,linux和mac os本身支持著色。
         樣例:<pattern>[%thread] %highlight(%-5level) %cyan(%logger{15}) - %msg %n</pattern>
              %highlight會將ERROR設為紅色加粗,WARN設為紅色,INFO設為藍色,其余默認。
              %cyan會將logger名稱設為藍綠色。
    ------------------------------------------------------------------
    Evaluators
         EventEvaluator類的實現,用來評估一個事件是否符合打印條件。
      <evaluator name="DISP_CALLER_EVAL">
        <expression>logger.contains("chapters.layouts") &amp;&amp; \
          message.contains("who calls thee")</expression>
      </evaluator>
      <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
        <encoder>
          <pattern>
            %-4relative [%thread] %-5level - %msg%n%caller{2, DISP_CALLER_EVAL}
          </pattern>
        </encoder>
      </appender>
         注意因為xml的關系,要用&amp;轉義&
         應用場景:
              例如,如果日志級別是WARN以上,并且logger是來自一個財務模塊——那么就打印caller信息。
         注意:
              在%caller轉義模式中,當Evaluators返回true的時候才輸出。
              在%ex轉義模式中,當Evaluatorstrue的時候不輸出。
         例如下面的配置,當異常對象為TestException時,不輸出。
      <evaluator name="DISPLAY_EX_EVAL">
        <expression>throwable != null &amp;&amp; throwable instanceof  \
          chapters.layouts.TestException</expression>
      </evaluator>
            
      <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
          <pattern>%msg%n%ex{full, DISPLAY_EX_EVAL}</pattern>
        </encoder>
      </appender>
    ------------------------------------------------------------------
    Creating a custom conversion specifier
         略
    ------------------------------------------------------------------
    HTMLLayout
         使用html表格來布局日志信息。
         可以使用普通的pattern轉義符,但轉義字符之前,不許用包括空格在內的任何字符分隔。
      <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
          <layout class="ch.qos.logback.classic.html.HTMLLayout">
            <pattern>%relative%thread%mdc%level%logger%msg</pattern>
          </layout>
        </encoder>
        <file>test.html</file>
      </appender>
         HTMLLayout會自動創建一個DefaultThrowableRenderer,將異常信息打印到完整的一行里。如果不想這樣,可以指定一個NOPThrowableRenderer。
    用CSS指定表格的樣式:略
    該Layout最常見的用法是配合SMTPAppender,發送html格式的日志郵件。
    ------------------------------------------------------------------
    Logback access
         略

    posted on 2014-07-13 18:58 王星游 閱讀(694) 評論(0)  編輯  收藏 所屬分類: java

    主站蜘蛛池模板: 亚洲第一中文字幕| 亚洲精品中文字幕无乱码| 亚洲精品欧美综合四区| 99精品国产免费久久久久久下载| 亚洲黄色网址大全| 手机在线看永久av片免费| 亚洲日韩一区二区一无码| 免费毛片在线播放| 免费无码一区二区| 亚洲日本va在线视频观看| 国产精成人品日日拍夜夜免费| 亚洲精品人成在线观看| 亚洲综合免费视频| 亚洲精品无码久久久久A片苍井空| 在线视频免费观看www动漫| 黄页网站在线视频免费| 中文字幕亚洲专区| 精品无码无人网站免费视频| 亚洲一线产区二线产区区| 免费jlzzjlzz在线播放视频| 99久久成人国产精品免费| 亚洲综合激情九月婷婷| 日韩成人免费在线| 国产色无码精品视频免费| 亚洲国产美女福利直播秀一区二区| 男人的好免费观看在线视频| 老司机午夜免费视频| 亚洲天堂在线播放| 成人免费无毒在线观看网站| 一级一级一级毛片免费毛片| 亚洲第一页中文字幕| 国产一级一片免费播放| 91成人免费观看在线观看| 亚洲人成在线免费观看| 亚洲毛片网址在线观看中文字幕 | 自拍偷自拍亚洲精品偷一| 亚洲乱码国产乱码精品精| 免费观看黄网站在线播放| 一级做a爰片性色毛片免费网站| 亚洲综合激情另类小说区| 亚洲国产精品日韩专区AV|