Jakarta Log4jAdvertisement入手
公式サイト(http://logging.apache.org/log4j/docs/)からバイナリファイルを入手して解凍。
dist/lib/log4j-?.?.?.jarをクラスパス上に置く。 ログレベル
Log4jでは5段階のログレベルが定義されている。
レベルの低い順に、DEBUG, INFO, WARN, ERROR, FATALとなっている。 基本的な分類
実装
サンプルクラス
import org.apache.log4j.Logger;
public class Log4jSample {
public static void main(String[] args) {
Log4jSample logic = new Log4jSample();
logic.method();
}
public void method(){
Logger logger = Logger.getLogger(this.getClass());
logger.debug("debug");
logger.info("info");
logger.warn("warn");
logger.error("error");
logger.fatal("fatal");
}
}
システムのログレベルがINFOのときは、INFOよりレベルの低いDEBUGのロギング処理がスキップされる。INFOを含んだINFOより高いレベルのロギング処理が実行される。ログレベルの変更を定義ファイルやSystemプロパティなどで手軽に行うことができるため、開発環境ではDEBUG、運用環境ではINFOのような使い分けを行うことができる。 ログレベル、出力フォーマットなどの指定構成Log4jは次の3つの要素で構成されている。
Categories複数のロギング設定をカテゴリとして分類することができる。カテゴリの分類には、javaのパッケージが利用される。 Appendersログ出力のあて先を指定する。あて先とは、コンソール・ファイル・GUIコンポーネントなどを表す。 複数のあて先を指定した場合、非同期でロギング処理が実行される。 Layouts出力時のレイアウトを指定する。TEXT,HTML,XMLなど。log4j.propertiesCategoriesプロパティファイルでカテゴリーの指定を行う場合、次のような書式で行う。log4j.rootLogger=[レベル], [Appender] log4j.logger.package.package=[レベル], [Appender] log4j.logger.com.ayumu-baby.634.logic=[レベル], [Appender] 全てのパッケージに対する設定log4j.rootLogger=[レベル], [Appender]上記のように指定することで、すべてのパッケージに対してログの設定を行うことができる。 個別のパッケージに対する設定log4j.logger.[パッケージ階層]パッケージを指定することで、指定したパッケージに対するログの設定を行うことができる。 なお、親パッケージの設定は子パッケージでも有効となる。 親子ともにカテゴリ設定が行われている場合、子の設定が優先される。 Appenderslog4j.appender.[Appender名]=[Appenderクラス]Log4jプロジェクトで用意されているAppenderにはAsyncAppender, JMSAppender, NTEventLogAppender, NullAppender, SMTPAppender, SocketAppender, SyslogAppender, WriterAppenderがある。 たとえばWriteAppenderのサブクラスであるConsoleAppenderをstandardという名称のAppenderとして指定するためには log4j.appender.standard=org.apache.log4j.ConsoleAppenderとする。 Layoutslog4j.appender.[Appender名].layout=[Layoutクラス]Log4jプロジェクトで用意されているLayoutには、DateLayout, HTMLLayout, PatternLayout, SimpleLayout, XMLLayoutがある。 プロパティファイルの例Log4j.propertieslog4j.rootLogger=INFO,standard log4j.logger.logic=DEBUG,standard log4j.logger.web=DEBUG,standard,io log4j.appender.standard=org.apache.log4j.ConsoleAppender log4j.appender.standard.layout=org.apache.log4j.SimpleLayout log4j.appender.io=org.apache.log4j.FileAppender log4j.appender.io.File=log.html log4j.appender.io.layout=org.apache.log4j.HTMLLayout
XML定義ファイル
Log4jの設定をXMLファイルで指定することも可能。書式が異なるだけで、構成や概念はプロパティファイルと同様。
枠組み<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration SYSTEM "./log4j.dtd"> <log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'> </log4j:configuration> Categoryカテゴリーの指定はCategoryタグを使用する。タグの内側に参照するAppenderを記述する。
<category name="log4j">
<appender-ref ref="CONSOLE_INFO" />
<appender-ref ref="LOGFILE_DEBUG" />
</category>
<root>
<appender-ref ref="CONSOLE_INFO" />
</root>
Appender&LayoutsAppenderとLayoutsはセットで定義する。
<appender name="CONSOLE_INFO" class="org.apache.log4j.ConsoleAppender" >
<param name="threshold" value="info"/>
</appender>
<appender name="LOGFILE_DEBUG" class="org.apache.log4j.FileAppender">
<param name="threshold" value="debug"/>
<param name="file" value="debug.html" />
<param name="append" value="true" />
<layout class="org.apache.log4j.HTMLLayout"/>
</appender>
Layoutに書式をパラメータで渡す場合、Layoutタグの中に<param>タグで指定する。
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%d %-5p %c - %m [%t] (%F:%L)%n" />
</layout>
XML定義ファイルの例
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "./log4j.dtd">
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
<appender name="CONSOLE_INFO" class="org.apache.log4j.ConsoleAppender" >
<param name="threshold" value="info"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d (%F:%L) %m%n"/>
</layout>
</appender>
<appender name="LOGFILE_DEBUG" class="org.apache.log4j.FileAppender">
<param name="threshold" value="debug"/>
<param name="file" value="debug.html" />
<param name="append" value="true" />
<layout class="org.apache.log4j.HTMLLayout"/>
</appender>
<category name="log4j">
<appender-ref ref="LOGFILE_DEBUG" />
</category>
<root>
<appender-ref ref="CONSOLE_INFO" />
</root>
</log4j:configuration>
Advertisement |
ショートカット・634・634ブログ ・このカテゴリのトップページに戻る ・Incubator(Pukiwiki) ・634ラボ UIコレクションギャラリー ZO-3ジェネレーター サイト検索Y!ログール |