sf 4 jとlog 4 jの構成



本論文はhttp://www.cnblogs.com/tsingxu/archive/2011/11/06/2238453.html 
package com.slf4j.test;

import org.slf4j.*;
/**
 * 
 * @author Tsingxu
 *
 */
public class test {
    public static final Logger logger = LoggerFactory.getLogger(test.class);
    
    public static void main(String[] args){
        System.setProperty("log4j.configuration", "log4j.properties");
        
        test.logger.debug("test start...");
        
        test.logger.error("test error...");
    }
}

slaf 4 j-appi-1.6.44.jar+slaf 4 j-jdk 14-1.6.jarを選択した時にコンソールに出力します.  2011-11-6 21:55 coms.slaf 4 j.test.test main
  重篤:test error…
選択中 slaf 4 j-appi-1.6.jar+slaf 4 j-log 4 j 12-1.6.jar+log 4 j-1.13.jar時出力(前提は対応するプロファイルlogs 4 j.propertiesがある)からファイルlogs.logsとerrors.logs
logs.log:  2011-11-06 21:59[main:0]-[DEBUG]test start…  2011-11-06 21:59[main:0]-[ERROR]test error…
errors.log  2011-11-06 21:59[main:0]-[ERROR]test error…
ロゴ4 j.propertiesは以下のように簡単に構成されています.
log4j.debug=true   
log4j.rootLogger=DEBUG,D,E   
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File = logs/logs.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = DEBUG
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
#log4j.appender.E.layout.

log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = logs/error.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = ERROR
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

ロゴ4 j.propertiesの設定パラメータについて説明します.
1基本フォーマットは以下の通りです.
#   Logger
log4j.rootLogger  =   [ level ]   ,  appenderName1 ,  appenderName2 ,  …

#           Appender
log4j.appender.appenderName  =  fully.qualified.name.of.appender.class 
  log4j.appender.appenderName.option1  =  value1 
  … 
  log4j.appender.appenderName.optionN  =  valueN 

#         (  )
log4j.appender.appenderName.layout  =  fully.qualified.name.of.layout.class 
  log4j.appender.appenderName.layout.option1  =  value1 
  … 
  log4j.appender.appenderName.layout.optionN  =  valueN 

その中の[level]ログ出力レベルは全部で5級です.
FATAL      0  
ERROR      3  
WARN       4  
INFO       6  
DEBUG      7 
アプリ ログ出力先のためにLog 4 jから提供されるアプリは以下のような種類があります.
org.apache.log4j.ConsoleAppender(   ),
org.apache.log4j.FileAppender(  ),
org.apache.log4j.DailyRollingFileAppender(          ),
org.apache.log4j.RollingFileAppender(                     ),
org.apache.log4j.WriterAppender(                   )
Layout:ログ出力フォーマット、Log 4 j提供のlayoutには以下の種類があります.
org.apache.log4j.HTMLLayout( HTML      ),
org.apache.log4j.PatternLayout(           ),
org.apache.log4j.SimpleLayout(               ),
org.apache.log4j.TTCCLayout(         、  、      )
印刷パラメータ: Log 4 JはC言語のprintf関数のような印刷フォーマットログ情報を採用しています.
    %m             %p        , DEBUG,INFO,WARN,ERROR,FATAL
    %r              log        
    %c          ,           
    %t                 
    %n            ,Windows   “\r
”,Unix “
    %d                ,     ISO8601,          ,  :%d{yyy MMM dd HH:mm:ss , SSS},    :2002 10 18   22 : 10 : 28 , 921 
    %l              ,     、     ,         。  :test.main(test.java: 10 ) 
パラメータの意味説明
       
ERROR               
WARN      ,  session  
INFO          ,      
DEBUG         
           
log4j.appender.appenderName=??
1.org.apache.log4j.ConsoleAppender(   )
2.org.apache.log4j.FileAppender(  )
3.org.apache.log4j.DailyRollingFileAppender(          )
4.org.apache.log4j.RollingFileAppender(                     )
5.org.apache.log4j.WriterAppender(                   )
         
log4j.appender.appenderName.layout = ??
1.org.apache.log4j.HTMLLayout( HTML      ),
2.org.apache.log4j.PatternLayout(           ),
3.org.apache.log4j.SimpleLayout(               ),
4.org.apache.log4j.TTCCLayout(         、  、      )
ConsoleAppender  
Threshold=DEBUG:             。
ImmediateFlush=true:    true,               。
Target=System.err:      :System.out,       
FileAppender   
Threshold=DEBUF:             。
ImmediateFlush=true:    true,               。
File=mylog.txt:       mylog.txt  。
Append=false:    true,            ,false             。
RollingFileAppender   
Threshold=DEBUG:             。
ImmediateFlush=true:    true,               。
File=mylog.txt:       mylog.txt  。
Append=false:    true,            ,false             。
MaxFileSize=100KB:      KB, MB     GB.            ,      ,         mylog.log.1  。
MaxBackupIndex=2:               。
                 :
 -X : X        ;
 %p:          , DEBUG,INFO,WARN,ERROR,FATAL,
 %d:              ,     ISO8601,          ,  :%d{yyy MMM dd HH:mm:ss,SSS},    :2002 10 18  22:10:28,921
 %r:            log        
 %c:            ,          
 %t:              
 %l:            ,   %C.%M(%F:%L)   ,     、     ,         。  :Testlog4.main (TestLog4.java:10)
 %x:            NDC(      ),     java servlets             。
 %%:     "%"  
 %F:                 
 %L:         
 %m:           ,         
 %n:          ,Windows   "\r
",Unix "
"
例のプロファイル log 4 j.properties
log4j.debug=true   
log4j.rootLogger=DEBUG,D,E

log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File = logs/logs.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = DEBUG
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
#log4j.appender.E.layout.

log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = logs/error.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = ERROR
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
設定ファイルを読み込むと、コンソールにロゴ4 j解析プロファイルが表示されます.エラーが発生したらエラーが発生します.
log4j: Parsing for [root] with value=[DEBUG,D,E].
log4j: Level token is [DEBUG].
log4j: Category root set to DEBUG
log4j: Parsing appender named "D".
log4j: Parsing layout options for "D".
log4j: Setting property [conversionPattern] to [%-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n].
log4j: End of parsing for "D".
log4j: Setting property [threshold] to [ERROR].
log4j: Setting property [append] to [true].
log4j: Setting property [file] to [logs/error.log].
log4j: setFile called: logs/error.log, true
log4j: setFile ended
log4j: Appender [D] to be rolled at midnight.
log4j: Parsed "D" options.
log4j: Parsing appender named "E".
log4j: Parsing layout options for "E".
log4j: Setting property [conversionPattern] to [%-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n].
log4j: End of parsing for "E".
log4j: Setting property [file] to [logs/logs.log].
log4j: Setting property [threshold] to [DEBUG].
log4j: Setting property [append] to [true].
log4j: setFile called: logs/logs.log, true
log4j: setFile ended
log4j: Appender [E] to be rolled at midnight.
log4j: Parsed "E" options.
log4j: Finished configuring.