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

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

注: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.xmlという
ファイルを作成します。

folder3

log4j.xmlに下記のコードを記述します。

  • 5行目のlog111.logは出力ファイル名です。
    ログのファイル名または出力先フォルダを変更したい場合は、この箇所を修正して下さい。
    例:      <param name="File" value="./logs/log112.log" />
  • 7行目は出力レイアウトの設定です。
  • 11行目の <level value="debug" />は、指定したログレベル以上のものが表示されます。
    ログレベルの順番は、trace – debug – info – warn – error – fatalとなっています。
    サンプルの例だとdebugが書かれているのでtraceは出力されません。
<?xml version="1.0" encoding="MS932" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
   <appender name="Appender1" class="org.apache.log4j.FileAppender">
      <param name="File" value="log111.log" />
      <layout class="org.apache.log4j.PatternLayout">
         <param name="ConversionPattern" value="%d{yyyy/MM/dd HH:mm:ss.SSS} [%t] %-6p %m%n"/>
      </layout>
   </appender>
   <root>
      <level value="debug" />
      <appender-ref ref="Appender1" />
   </root>
</log4j:configuration>    

4.ソースコードの作成

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

package test1;
 
import org.apache.log4j.Logger;
import org.apache.log4j.xml.DOMConfigurator;
 
/**
 *  log4j 1.2 テキストにログを出力するサンプル(設定ファイルがxml)
 */
class Sample {
	
	private Logger logger = Logger.getLogger(Sample.class);
 
	void runSample(){
 
		// 設定ファイルを読み込む
		DOMConfigurator.configure("log4j.xml");
 
		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.xml)で指定したファイル(log111.log)が存在しない場合は新規にファイル(log111.log)が作成されログが書き込まれます。
設定ファイル(log4j.xml)で指定したファイル(log111.log)が存在する場合は、追記でログが書き込まれます。

folder4

 

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

2016/07/21 22:50:24.975 [main] DEBUG テスト1
2016/07/21 22:50:24.975 [main] INFO テスト2
2016/07/21 22:50:24.976 [main] WARN テスト3
2016/07/21 22:50:24.976 [main] ERROR テスト4

関連の記事

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




△上に戻る