log4j.propeties の書き方
log4j は Jakarta のログ出力フレームワークです。ログの初期設定方法に property ファイルの他
XML でも指定可能です。ここでは、 property ファイルの指定方法について解説します。
共通のプロパティの key
Appendar の種類に係わらず、共通して指定が必要な key 項目。
key |
値 |
説明,例 |
log4j.debug |
true もしくは false |
Loggingの初期化部分を表示するかどうかの指定 |
log4j.rootCategory |
DEBUG, INFO, WARN, ERROR, FATAL のいずれか |
root カテゴリの出力レベルの設定 |
log4j.category.カテゴリ名 |
DEBUG, INFO, WARN, ERROR, FATAL のいずれか |
カテゴリ名の出力レベルの設定 |
log4j.appender.カテゴリ名 |
Appender クラスの指定 |
org.apache.log4j.ConsoleAppender, org.apache.log4j.RollingFileAppender 等 |
log4j.appender.カテゴリ名.layout |
レイアウトを行うクラスの指定 |
org.apache.log4j.PatternLayout |
log4j.appender.カテゴリ名.layout.conversionPattern |
出力フォーマットの指定 |
%m%n |
出力フォーマットの指定方法
layout.conversionPattern で指定するフォーマットの書き方。
フォーマット |
内容 |
%c |
カテゴリー名 |
%d |
日時 |
%F |
ファイル名 |
%l |
位置 |
%L |
行番号 |
%m |
メッセージ |
%M |
メソッド名 |
%n |
改行 |
%p |
出力レベル |
%r |
アプリケーション開始からの経過時間(ミリ秒) |
ConsoleAppender
標準出力に出力する Appendar。共通部分以外は特に指定しません。
log4j.debug=false
# org.apache category
log4j.category.org.apache=INFO, APACHE
log4j.appender.APACHE=org.apache.log4j.ConsoleAppender
log4j.appender.APACHE.layout=org.apache.log4j.PatternLayout
log4j.appender.APACHE.layout.conversionPattern=%d{yyyy/MM/dd HH:mm:ss.SSS} - %m%n
RollingFileAppender
ファイルをロールさせて backup を取る Appendar。
・File ---- 保存するファイル
・MaxFileSize ---- ログファイルの最大サイズ
・MaxBackupIndex ---- ログファイルのバックアップの数
# com.fc2web.himtodo.test
log4j.category.com.fc2web.himtodo.test=DEBUG, TEST
log4j.appender.TEST=org.apache.log4j.RollingFileAppender
log4j.appender.TEST.File=C:/logs/test.log
log4j.appender.TEST.MaxFileSize=10MB
log4j.appender.TEST.MaxBackupIndex=50
log4j.appender.TEST.layout=org.apache.log4j.PatternLayout
log4j.appender.TEST.layout.conversionPattern=%d{yyyy/MM/dd HH:mm:ss.SSS} [%p] - %m%n
DailyRollingFileAppender
日単位で backup を取る Appendar。
・File ---- 保存するファイル
・DatePattern ---- backup ファイルの suffix
# com.fc2web.himtodo.test
log4j.category.com.fc2web.himtodo.test=DEBUG, TEST
log4j.appender.TEST=org.apache.log4j.DailyRollingFileAppender
log4j.appender.TEST.File=C:/logs/test.log
log4j.appender.TEST.DatePattern='.'yyyy-MM-dd
log4j.appender.TEST.layout=org.apache.log4j.PatternLayout
log4j.appender.TEST.layout.conversionPattern=%d{yyyy/MM/dd HH:mm:ss.SSS} [%p] - %m%n
※以前にログを書いた日付と比較して日付が進んでいたら test.log.yyyy-MM-dd にファイルを退避する。
それから test.log にログを出力するという動作をとる。
VM の再起動等を行うとログがロールしない場合があるので要注意
JDBCAppender
JDBC 経由でデータベースにログを追加する Appendar。テーブルは事前に必要。
・URL ---- JDBC URL
・user ---- データベースのユーザ
・password ---- データベースのパスワード
・driver ---- JDBC Driver
・bufferSize ---- buffer の数だけログが溜まると DB に書き込む。 Default は 1 (都度書く)
# com.fc2web.himtodo.test
log4j.category.com.fc2web.himtodo.test=DEBUG, TEST
log4j.appender.TEST=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.TEST.URL=jdbc:oracle:thin:@127.0.0.1:1521:TEST
log4j.appender.TEST.user=test
log4j.appender.TEST.password=test
log4j.appender.TEST.driver=oracle.jdbc.driver.OracleDriver
log4j.appender.TEST.bufferSize=1
log4j.appender.TEST.layout=org.apache.log4j.PatternLayout
log4j.appender.TEST.layout.conversionPattern=
INSERT INTO LOG_TABLE VALUES ('%d{yyyy-MM-dd HH:mm:ss.SSS}', '%p', '%m' )
|
|