Java log4j 1.2でテキストにログを出力するサンプル(設定ファイルがテキスト)

log4j 1.2とテキストの設定ファイルを使用してテキストファイルにログを出力するサンプル(手順)です。

注:log4jの1.xは2015年8月にEOL(End of Life)になっており、Log4j 2が推奨されています。
Apache log4j 1.2のサイト
http://logging.apache.org/log4j/1.2/index.html
log4j2のサンプルは
Java log4j2でテキストにログを出力するサンプル参照。
実行環境
・Windows10
・eclipse4.5
・log4j-1.2.17.jar

1.jarファイルの取得

下記のサイトからlog4j-1.2.17.zipをダウンロードします。

Apache log4j 1.2のサイト
http://logging.apache.org/log4j/1.2/download.html 

ダウンロードしたzipを展開し以下のファイルを任意の場所に配置します。
・log4j-1.2.17.jar

2.jarファイルをクラスパス(ビルドパス)に追加

log4j-1.2.17.jarをクラスパスに追加します。
クラスパスに追加する手順は、
Eclipse 外部のjarファイルを使うためのクラスパス(ビルドパス)の設定手順参照。

3.設定ファイルの作成

eclipseのワークスペースの(プロジェクト)フォルダの直下に log4j.propertiesという
ファイルを作成します。

folder1

次に、log4j.propertiesに下記のコードを記述します。

  • 2行目のrootCategoryは、指定したログレベル以上のものが表示されます。
    ログレベルの順番は、trace – debug – info – warn – error – fatalとなっています。
    サンプルの例だとdebugが書かれているのでtraceが出力されません。
  • 4行目のtest1.logは出力ファイル名です。
    ログのファイル名または出力先フォルダを変更したい場合は、この箇所を修正して下さい。
    例:     log4j.appender.Appender1.File=./logs/test2.log 
  • 6行目は出力レイアウトの設定です。
#log4j設定
log4j.rootCategory=DEBUG, Appender1
log4j.appender.Appender1=org.apache.log4j.FileAppender
log4j.appender.Appender1.File=test1.log
log4j.appender.Appender1.layout=org.apache.log4j.PatternLayout
log4j.appender.Appender1.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss.SSS} [%t] %-6p %m%n

4.ソースコードの作成

以下のコードを記述します。

package test1;
 
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
 
/**
 * log4j 1.2 テキストにログ出力するサンプル(設定ファイルがテキスト)
 */
class Sample {
 
	private Logger logger = Logger.getLogger(Sample.class);
	
	void runSample(){
 
		// 設定ファイルを読み込む
		PropertyConfigurator.configure("log4j.properties");
 
		int a = 1;
		int b = 2;
		int c = 3;
		int d = 4;
 
		logger.trace("テスト" + a);
		logger.debug("テスト" + a);
		logger.info("テスト" + b);
		logger.warn("テスト" + c);
		logger.error("テスト" + d);
	}
}
public class Test1 {
	public static void main(String[] args) {
		Sample s = new Sample();
		s.runSample();
 	}
}

5.実行結果の確認

上記コードを実行して確認します。
設定ファイル(log4j.properties)で指定したファイル(test1.log)が存在しない場合は新規にファイル(test1.log)が作成されログが書き込まれます。
設定ファイル(log4j.properties)で指定したファイル(test1.log)が存在する場合は、追記でログが書き込まれます。

folder2

 

ファイルの中身は以下の通りです。

2016/07/21 23:19:45.192 [main] DEBUG テスト1
2016/07/21 23:19:45.193 [main] INFO テスト2
2016/07/21 23:19:45.193 [main] WARN テスト3
2016/07/21 23:19:45.193 [main] ERROR テスト4

関連の記事

Java log4j 1.2でテキストにログを出力するサンプル(設定ファイルがxml)
Java log4j 1.2でコンソールにログを出力するサンプル
Java log4j2でテキストにログを出力するサンプル
Java LogbackとSLF4jでテキストにログを出力するサンプル



△上に戻る