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

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

確認環境
・eclipse 4.7/4.6/4.5
・log4j-1.2.17.jar
・Windows10

目次

log4j 1.2

 

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/log111.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.ソースコードの作成

テキストファイルにログを出力するコードです。
8行目は、Loggerクラスのインスタンスを取得しています。
13行目は、設定ファイルを読み込んでいます。
18-22行目は、ログをテキストに出力します。

package test1;
 
import org.apache.log4j.Logger;
import org.apache.log4j.xml.DOMConfigurator;
 
class Sample {
 
	private Logger log = Logger.getLogger(Sample.class);
	
	void runSample(){
 
		// 設定ファイルを読み込む
	    DOMConfigurator.configure("log4j.xml");
 
		String a = "テスト";
		
		log.trace(a); // 出力なし
        log.debug(a); //2016/07/21 22:50:24.975 [main] DEBUG  テスト
        log.info(a); //2016/07/21 22:50:24.975 [main] INFO   テスト
        log.warn(a); //2016/07/21 22:50:24.976 [main] WARN   テスト
        log.error(a); //2016/07/21 22:50:24.976 [main] ERROR  テスト
        log.fatal(a); //2016/07/21 22:50:24.976 [main] FATAL  テスト
	}
}
public class Test1 {
	public static void main(String[] args) {
		Sample s = new Sample();
		s.runSample();
 	}
}

 

5.出力ファイルの確認

設定ファイルに指定した場所にログファイル(log111.log)が出力されます。

ログファイルが存在しない場合は新規に作成されます。
ログファイルが存在する場合は追記されます。

folder4

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

2016/07/21 22:50:24.975 [main] DEBUG テスト
2016/07/21 22:50:24.975 [main] INFO テスト
2016/07/21 22:50:24.976 [main] WARN テスト
2016/07/21 22:50:24.976 [main] ERROR テスト
2016/07/21 22:50:24.976 [main] FATAL テスト

関連の記事

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

△上に戻る