国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

LogBack與Log4j配置與日志分模塊打印

kycool / 3427人閱讀

摘要:如果日志級別等于配置級別,過濾器會根據和接收或拒絕日志。例如過濾掉所有低于級別的日志。有個子標簽,用于配置求值條件。

沒時間解釋了,快上車,老司機先看代碼

LogBack.xml


    
    
    
    
 
    
        
            DEBUG
        
        
      ${MESSAGE_FILE_PATTERN}
        
    

    
        true
          
                INFO  
            ACCEPT  
            DENY  
          
        ${catalina.base}/logs/vod.log
        
            ${catalina.base}/logs/vod-info-%d{yyyy-MM-dd}.log
            ${maxhistory}
        
        
            ${MESSAGE_FILE_PATTERN}
            
        
    
    
        true
          
                INFO  
            ACCEPT  
            DENY  
          
        ${catalina.base}/logs/vod-music.log
        
            ${catalina.base}/logs/vod-music-%d{yyyy-MM-dd}.log
            ${maxhistory}
        
        
            ${MESSAGE_FILE_PATTERN}
            
        
    

    
        true
        
            WARN
        
        ${catalina.base}/logs/vod-error.log
        
            ${catalina.base}/logs/vod-error-%d{yyyy-MM-dd}.log
            ${maxhistory}
        
        
            ${MESSAGE_FILE_PATTERN}
            
        
    
    
        true
          
                INFO  
            ACCEPT  
            DENY  
          
        ${catalina.base}/logs/vod-douban.log
        
            ${catalina.base}/logs/vod-douban-%d{yyyy-MM-dd}.log
            ${maxhistory}
        
        
            ${MESSAGE_FILE_PATTERN}
            
        
    
   
    
    
    

    
    

    
    

    
    

    
    

    
    

    
    
    
     
        
        
    
    
     
        
        
    
    
    
        
        
        
    

上述實現了
1、將DEBUG、INFO、WRAN/ERROR日志分開打印到不同文件
2、通過包名來按模塊打印到特定文件
3、日志文件每天rolling、保存最大歷史日志文件數

幾個注意點:
1、日志打印格式如下:%d{yyyy-MMM-dd HH:mm:ss.SSS} %-5level %marker %thread %logger %msg%n
沒有打印具體的方法名。如果要打印方法名:加個%M
%d{yyyy-MMM-dd HH:mm:ss.SSS} %-5level %marker %thread %logger.%M %msg%n
但是打印方法名可能會加大日志開銷,從而影響速度問題。
說明見:http://stackoverflow.com/ques...

Generating the method name is not particularly fast. Thus, its use should be avoided unless execution speed is not an issue.

2、additivity的作用
additivity的作用在于children-logger是否使用 rootLogger配置的appender進行輸出。
false:表示只用當前logger的appender-ref。
true:表示當前logger的appender-ref和rootLogger的appender-ref都有效。也就是說會打印至少兩遍。

3、filter的作用
過濾器,執行一個過濾器會有返回個枚舉值,即DENY,NEUTRAL,ACCEPT其中之一。返回DENY,日志將立即被拋棄不再經過其他過濾器;返回NEUTRAL,有序列表里的下個過濾器過接著處理日志;返回ACCEPT,日志會被立即處理,不再經過剩余過濾器。
過濾器被添加到 中,為 添加一個或多個過濾器后,可以用任意條件對日志進行過濾。 有多個過濾器時,按照配置順序執行。

幾個常用的過濾器:
LevelFilter: 級別過濾器,根據日志級別進行過濾。如果日志級別等于配置級別,過濾器會根據onMath 和 onMismatch接收或拒絕日志。有以下子節點:
:設置過濾級別
:用于配置符合過濾條件的操作
:用于配置不符合過濾條件的操作

例如:將過濾器的日志級別配置為INFO,所有INFO級別的日志交給appender處理,非INFO級別的日志,被過濾掉。

   
       
      INFO   
      ACCEPT   
      DENY   
       
       
         
        %-4relative [%thread] %-5level %logger{30} - %msg%n   
         
       
 

ThresholdFilter: 臨界值過濾器,過濾掉低于指定臨界值的日志。當日志級別等于或高于臨界值時,過濾器返回NEUTRAL;當日志級別低于臨界值時,日志會被拒絕。
例如:過濾掉所有低于INFO級別的日志。

   
       
       
      INFO   
       
       
         
        %-4relative [%thread] %-5level %logger{30} - %msg%n   
         
       
   

EvaluatorFilter: 求值過濾器,評估、鑒別日志是否符合指定條件。需要額外的兩個JAR包,commons-compiler.jar和janino.jar有以下子節點:
:
鑒別器,常用的鑒別器是JaninoEventEvaluato,也是默認的鑒別器,它以任意的java布爾值表達式作為求值條件,求值條件在配置文件解釋過成功被動態編譯,布爾值表達式返回true就表示符合過濾條件。evaluator有個子標簽,用于配置求值條件。
:用于配置符合過濾條件的操作
:用于配置不符合過濾條件的操作

    
             
          
        return message.contains("billing");   
         
      ACCEPT   
      DENY  
       
       
         
        %-4relative [%thread] %-5level %logger - %msg%n   
         
       
   

參考:
https://github.com/makotan/lo...
http://stackoverflow.com/ques...
http://czj4451.iteye.com/blog...
http://aub.iteye.com/blog/111...

Log4j.properties配置
# Output pattern : date [thread] priority category - message
log4j.rootLogger=INFO, Console, RollingFile,Error

#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=[shopping] %-d{HH:mm:ss} %p [%c{1}.%M(%L)]  %m%n

#RollingFile
log4j.appender.RollingFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.RollingFile.File=${catalina.base}/logs/shopping/shopping.log
log4j.appender.RollingFile.layout=org.apache.log4j.PatternLayout
log4j.appender.RollingFile.layout.ConversionPattern=[shopping] %-d{HH:mm:ss} %p [%c{1}.%M(%L)]  %m%n
log4j.appender.RollingFile.filter.a=org.apache.log4j.varia.LevelRangeFilter
log4j.appender.RollingFile.filter.a.LevelMin=INFO
log4j.appender.RollingFile.filter.a.LevelMax=INFO
log4j.appender.RollingFile.filter.a.acceptOnMatch=true
 
#ShoppingUtil
log4j.appender.ShoppingUtil=org.apache.log4j.DailyRollingFileAppender
log4j.appender.ShoppingUtil.File=${catalina.base}/logs/shopping/shopping-util.log
log4j.appender.ShoppingUtil.layout=org.apache.log4j.PatternLayout
log4j.appender.ShoppingUtil.layout.ConversionPattern=[shopping] %-d{HH:mm:ss} %p [%c{1}.%M(%L)]  %m%n
log4j.appender.ShoppingUtil.filter.aa=org.apache.log4j.varia.LevelRangeFilter
log4j.appender.ShoppingUtil.filter.aa.LevelMin=INFO
log4j.appender.ShoppingUtil.filter.aa.LevelMax=INFO
log4j.appender.ShoppingUtil.filter.aa.acceptOnMatch=true
 

#error
log4j.appender.Error=org.apache.log4j.DailyRollingFileAppender
log4j.appender.Error.File=${catalina.base}/logs/shopping/shopping-error.log
log4j.appender.Error.layout=org.apache.log4j.PatternLayout
log4j.appender.Error.layout.ConversionPattern=[shopping] %-d{HH:mm:ss} %p [%c{1}.%M(%L)]  %m%n
log4j.appender.Error.Threshold=WARN


#Project defalult level
log4j.logger.org.springside.examples.miniweb=INFO

log4j.logger.com.opensymphony.xwork2.interceptor.ParametersInterceptor=DEBUG

log4j.logger.org.springside= INFO

log4j.logger.com.shopping= INFO

log4j.logger.com.shopping.shop.utility=INFO,Console,ShoppingUtil,Error
log4j.additivity.com.shopping.shop.utility=false 

參考:
http://stackoverflow.com/ques...
http://www.cnblogs.com/0201zc...
http://blog.csdn.net/liu251/a...

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/69908.html

相關文章

  • java日志框架

    摘要:一日志概述領域存在多種日志框架,目前常用的日志框架包括,,,,,。開銷更高三與其他日志組件調用關系包名說明版本的橋接器,你需要將加入。的橋接器,原生日志框架。 一、Java日志概述 java領域存在多種日志框架,目前常用的日志框架包括Log4j 1,Log4j 2,Commons Logging,Slf4j,Logback,Jul。 Commons Logging和Slf4j是日志...

    dendoink 評論0 收藏0
  • logback的簡單使用

    摘要:的測試完全不同級別的。記錄請求的級別在高于或等于其的有效級別時被稱為被啟用,否則,稱為被禁用。該規則是的核心。指定名稱,指定的全限定名。對記錄事件進行格式化。查看當前活動文件的大小,如果超過指定大小會告知觸發當前活動文件滾動。 一、logback的介紹 Logback是由log4j創始人設計的又一個開源日志組件,官方網站: http://logback.qos.ch。 logback當...

    habren 評論0 收藏0
  • 9、springcloud整合logback打印sql語句

    摘要:公眾號樂園是由創始人設計的又一個開源日志組件。此外完整實現使你可以很方便地更換成其它日志系統如或。是要與結合起來用的。從控制臺打印出來的日志級別只有還有。這里可以使用絕對路徑如,會自動在盤下創建文件夾和相應的日志文件。 公眾號 java樂園 Logback是由log4j創始人設計的又一個開源日志組件。logback當前分成三個模塊:logback-core、logback- class...

    singerye 評論0 收藏0
  • 強推!大牛程序員必備的Java日志框架,性能無敵

    摘要:本文要來分享給大家程序員最常用的日志框架組件。沒有基礎的同學也不要著急,這套教程覆蓋了目前所有的日志框架,只要你學,就一定用得到,先收藏,以備不時之需。 作為一名Java程序員,我們開發了很多Java應用程序,包括桌面應用、WEB應用以及移動應用。然而日志系統是一個成熟Java應用所必不可少的。在開發和調試階段,日志可以幫...

    zebrayoung 評論0 收藏0
  • springboot超級詳細的日志配置(基于logback)

    摘要:默認情況下將級別的日志輸出到控制臺中,不會寫到日志文件,且不能進行復雜配置。節點用于定義變量,方便使用。 showImg(https://raw.githubusercontent.com/FleyX/files/master/blogImg/20190320135049.png); 前言 ??java web 下有好幾種日志框架,比如:logback,log4j,log4j2(slj...

    meislzhua 評論0 收藏0

發表評論

0條評論

kycool

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<