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.propertieslog4j.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.