[セットトップ]Log 4 jの学習--Log 4 jプロファイル

6448 ワード

1、log 4 j構成の概要
log 4 jには2種類のプロファイルがあり、log 4 j.propertiesとlog 4 j.xml.log 4 jは比較的簡単なコンポーネントであるため、log 4 jの使用を推奨する.properties.
log 4 jをプロジェクトのsrcの下に(つまりclassesの下に)置くと、log 4 jと名付けられます.propertiesでは、log 4 jがこのプロファイルを自動的にロードします.これも私たちが最もよく使う方法です.
 
2、ルートログ
プロファイルでは、log 4 jというプロファイルが必要である.rootLoggerのログ、それはルートログです.他のログはルート・ログのサブログであり、ルート・ログの宛先やレベルなどが継承されます.
log4j.properties
log4j.rootLogger=DEBUG,A1 log4j.appender.A1=org.apache.log4j.ConsoleAppender log4j.appender.A1.layout=org.apache.log4j.SimpleLayout
上に説明します.
 log4j.rootLoggerはルート・ログを表し、DEBUGはルート・ログの出力レベルを指定し、DEBUGレベル以上のログであれば出力できます.A 1は、目的地(Appender)を説明する名称である.
 log4j.appender.A 1は目的地を示す、org.apache.log4j.ConsoleAppenderは目的地がコンソール目的地であることを示し、すなわち出力結果がコンソールに表示される.
 log4j.appender.A1.LayoutはA 1という目的地のフォーマットを表し、org.apache.log4j.SimpleLayoutは簡略フォーマットを表します.Javaでは次のように書くことができます.
public void fun1() {
		Logger log = Logger.getLogger(Demo1.class);
		log.debug("Hello");
}

3、その他のログ
もちろん、他のログを構成することもできます.構文は次のとおりです.
log4j.rootLogger=DEBUG,A1 log4j.logger.com.luowg=WARN,A1 log4j.appender.A1=org.apache.log4j.ConsoleAppender log4j.appender.A1.layout=org.apache.log4j.SimpleLayout
ルートログを構成するだけでなく、comという名前も構成しました.chjのログ.関係を引き継ぐのは君は知っているだろう.すべてのログがcomである場合.chj接頭辞は、上記の構成を継承します.そうでなければ、rootログを継承します.
次に、プロファイルの名詞を説明します.一部はネット上で参考にしています.
1、Appender
Appenderは出力ターゲットを指定するためのクラスで、宛先と呼ぶことができます.上記で使用したConsoleAppenderは、コンソールに出力する目的地です.よく使われる目的地は次のとおりです.
ConsoleAppender:コンソールにログを出力します.
FileAppender:ログをファイルに出力
DailyRollingFileAppender:ファイルにログを出力し、毎日1つのログファイルを出力します.
RollingFileAppender:ファイルにログを出力し、ファイルサイズが指定したサイズに達した後、新しいファイルを生成します.
 
ConsoleAppenderのターゲットはコンソール!これもあまり説明しない
log4j.rootLogger=DEBUG,A1 log4j.appender.A1=org.apache.log4j.ConsoleAppender log4j.appender.A1.layout=org.apache.log4j.SimpleLayout
 
FileAppenderのターゲットはディスクファイルです
log4j.rootLogger=DEBUG,A1 log4j.appender.A1=org.apache.log4j.FileAppender log4j.appender.A1.File=log.txt log4j.appender.A1.Append=true log4j.appender.A1.layout=org.apache.log4j.SimpleLayout
 
RollingFileAppenderはFileAppenderのサブクラスです
ログ・ファイルのサイズがファイル・サイズの限界を超えた場合、ログ・ファイルをバックアップ・ファイルに変換し、新しいログ・ファイルを生成する役割を果たします.
例えばログファイル名がlogである.txtは、ファイルサイズの上限を1 KBとし、logとする.txtファイルのサイズが1 KBを超えたら、log.txtの名前をlogに変換する.txt.1、次にlogを生成する.txt、新しいログが新しいlogに書き込まれます.txtファイルにあります.ロゴにするtxtの大きさが再び1 KBになると、log.txt.1名前をlogに変更する.txt.2、ロゴを.txtをlogに変更する.txt.1、それから新しいlogを生成します.txtファイル.
また、ファイルの数を設定することもできます.バックアップファイルの数を3に設定すると、最大3つのファイルがあることを示します.ファイルが3に達し、再び1 KBに達すると、最後のファイルが削除されます.例えば現在logが存在する.txt、log.txt.1、log.txt.2,このときlog.txtがまた1 KBに達した場合、logを削除する.txt.2、それからロゴを.txt.1をlogに変更する.txt.2、ロゴをtxtをlogに変更する.txt.1、次にlogを作成します.txtファイル.
log4j.rootLogger=DEBUG,A1 log4j.appender.A1=org.apache.log4j.RollingFileAppender log4j.appender.A1FILE.File=log.txt log4j.appender.A1.MaxFileSize=1KB log4j.appender.A1.MaxBackupIndex=3 log4j.appender.A1.layout=org.apache.log4j.SimpleLayout
 
DailyRollingFileAppenderは、設定された時間周波数に基づいてバックアップファイルを生成します.
時間周波数がyyyyy-MMの場合:毎月バックアップファイルを生成する;
時間周波数がyyyy-wwの場合:週ごとにバックアップファイルを生成します.
時間周波数がyyyyy-MM-ddの場合:日ごとにバックアップファイルを生成する;
時間周波数がyyyyy-MM-dd-aの場合:毎日2回のバックアップを生成します.
時間周波数がyyyyy-MM-dd-HHの場合:時間ごとにバックアップファイルを生成する;
時間周波数がyyyyy-MM-dd-H-mmの場合:分単位でバックアップファイルを生成します.
 
log4j.rootLogger=DEBUG,A1 log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender log4j.appender.A1.File=log.txt log4j.appender.A1.DatePattern='.'yyyy-MM-dd log4j.appender.A1.layout=org.apache.log4j.SimpleLayout
 
2、Layout
 
Layout種類
宛先にフォーマットを指定する必要があります.これにより、宛先はフォーマットで指定したフォーマットに従ってログ情報を出力できます.私たちはSimpleLayoutフォーマットを使っていましたが、私たちがよく使っているフォーマットはPatternLayoutです.
 
PatternLayout
PatternLayoutのテンプレートを指定できます.宛先はテンプレートによってログ情報を出力します.たとえば、テンプレートはhello:%mで、%mはモード文字です.次に、モード文字について説明します.
%m:情報そのもの;
%c:ログの名前;
%d:日付、例えば%d{yyyy-MM-dd HH:mm:ss};
%p:ログレベル;
%n:改行;
%t:現在のスレッド;
%l:ログのJavaクラス関連情報を出力します.
 
Webプロジェクトでの構成
log4j.rootLogger=INFO,c1, f1   log4j.appender.c1=org.apache.log4j.ConsoleAppender log4j.appender.c1.layout=org.apache.log4j.PatternLayout log4j.appender.c1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%p] %m [%t] %c [%l]%n   log4j.appender.f1.File=${catalina.home}/logs/myproject.txt log4j.appender.f1=org.apache.log4j.DailyRollingFileAppender log4j.appender.f1.layout=org.apache.log4j.PatternLayout log4j.appender.f1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%p] %m [%t] %c [%l]%n
 
次は私のプロファイルです.コメントが追加されています.
#debug   ,       bug。
#    。                 ,           ,     
#      INFO          。c1 A1,f1      (Appender)   ;
log4j.rootLogger=INFO,c1,A1,f1

#ConsoleAppender        
log4j.appender.c1=org.apache.log4j.ConsoleAppender

#  c1          ,org.apache.log4j.PatternLayout          
log4j.appender.c1.layout=org.apache.log4j.PatternLayout
log4j.appender.c1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%p] %m [%t] %c [%l]%n

#RollingFileAppender FileAppender   ,
#                     ,             ,             。
log4j.appender.A1=org.apache.log4j.RollingFileAppender 

#:             。
log4j.appender.A1.Threshold=info

#:    true,               。
log4j.appender.A1.ImmediateFlush=true

log4j.appender.A1.File=d\://logs/log.txt 
#            ,      ,         log.txt.1  。
log4j.appender.A1.MaxFileSize=1KB 

#               。 
log4j.appender.A1.MaxBackupIndex=3 
log4j.appender.A1.layout=org.apache.log4j.SimpleLayout 

#DailyRollingFileAppender                。
log4j.appender.f1=org.apache.log4j.DailyRollingFileAppender

#:             。
log4j.appender.f1.Threshold=info

#:    true,               。
log4j.appender.f1.ImmediateFlush=true
#log4j.appender.f1.File=/WEB-INF/logs/file.log
log4j.appender.f1.File=d://logs/file.log

#DatePattern='.'yyyy-ww:        ,           。         、 、 、   
#        :
	#'.'yyyy-MM:   
	#'.'yyyy-ww:    
	#'.'yyyy-MM-dd:   
	#'.'yyyy-MM-dd-a:     
	#'.'yyyy-MM-dd-HH:    
	#'.'yyyy-MM-dd-HH-mm:    
log4j.appender.f1.DatePattern='.'yyyy-MM-dd 
log4j.appender.f1.layout=org.apache.log4j.PatternLayout
log4j.appender.f1.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} [%p] %m [%t] %c [%l]%n