Java log4j 1.2でテキストにログを出力(テキストで設定)

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

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

目次

サンプル log4j 1.2とは
  log4j 1.2の取得方法
  設定ファイルの作成(log4j.properties)
  ソースコードの作成
  出力ファイルの確認

log4j 1.2とは

 

log4j 1.2の取得方法

1.Mavenで取得する場合

pom.xmlの<dependencies>の間に以下のコードを追加します。

<!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>

Mavenで取得する手順は、以下を参照願います。
Eclipse Mavenでjarを取得(Java)

 

2.jarファイルで取得する場合

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

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

ダウンロードしたzipを展開して任意の場所に配置しjarファイルをクラスパスに追加します。
・log4j-1.2.17.jar

クラスパスに追加する手順は、以下を参照願います。
Eclipse jarファイルをクラスパスに設定する方法

 

設定ファイルの作成(log4j.properties)

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

folder1

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

#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

2行目のrootCategoryは、指定したログレベル以上のものが表示されます。
ログレベルの順番は、trace – debug – info – warn – error – fatalとなっています。
サンプルの例だとdebugが書かれているのでtraceが出力されません。
4行目のtest1.logは出力ファイル名です。
ログのファイル名または出力先フォルダを変更したい場合は、この箇所を修正して下さい。
例:     log4j.appender.Appender1.File=./logs/test2.log 
6行目は出力レイアウトの設定です。

 

ソースコードの作成

テキストファイルにログを出力するコードです。

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

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

 

出力ファイルの確認

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

folder2

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

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

2016/07/21 23:19:45.191 [main] DEBUG テスト
2016/07/21 23:19:45.192 [main] INFO テスト
2016/07/21 23:19:45.192 [main] WARN テスト
2016/07/21 23:19:45.192 [main] ERROR テスト
2016/07/21 23:19:45.192 [main] FATAL テスト

関連の記事

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

△上に戻る