【Java】【log4j】log4j ~入門編~

■ ダウンロード

 * 以下で行う
http://logging.apache.org/log4j/1.2/download.html

■ 使用手順

[1] log4jのJARファイルを組み込む

 [1-1] ダウンロードしたファイル(zip)を解凍する
 [1-2] Eclipseにおいて、対象とするプロジェクトを右クリックし、
      [Properties]-[Java Build Path]-[Libraries]-[Add External JARs]を選択
 [1-3] 手順[1]で解凍したzipで、log4jのJARファイル(例「log4j-1.2.17.jar」)を選択し「ok」押下 

[2] 実装および実行

 [2-1] プログラムを書く(サンプルを参照のこと)
 [2-2] 実行するのみ

■ 使用上の注意

アプリケーション終了時のログの後始末

 * LogManager.shutdown() を呼ぶ

 * 以下のサイトが参考になる
http://hhelibex.hatenablog.jp/entry/20090920/1253469727

■ サンプル1:コンソール画面に出力させる

package demo.logger;

import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.Logger;

public class HelloWorld {
	static Logger logger = Logger.getLogger(HelloWorld.class.getName());
	
	public static void main(String[] args) {
		BasicConfigurator.configure();
		
		HelloWorld.logger.debug("Hello World!!");
	}
}
出力結果
0 [main] DEBUG demo.logger.HelloWorld  - Hello World!!

■ サンプル2:log4j.propertiesを使ってログファイルを出力させる

package demo.logger;

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;

public class HelloWorld2 {
	static Logger logger = Logger.getLogger(HelloWorld2.class.getName());
	
	public static void main(String[] args) {
		PropertyConfigurator.configure("./conf/log4j.properties");
		
		HelloWorld2.logger.debug("Hello World!!!!");
	}
}

conf/log4j.properties

log4j.rootCategory=DEBUG, Appender1
log4j.appender.Appender1=org.apache.log4j.FileAppender
log4j.appender.Appender1.File=C:\\test\\OutputLog4j.log
log4j.appender.Appender1.layout=org.apache.log4j.PatternLayout
log4j.appender.Appender1.layout.ConversionPattern=%d %-5p %c - %m [%t] (%F:%L)%n
出力結果(C:\test\OutputLog4j.log)
2013-07-21 01:32:24,265 DEBUG demo.logger.HelloWorld2 - Hello World!!!! [main] (HelloWorld2.java:12)

■ サンプル3:xmlを使ってログファイルを出力させる

package demo.logger;

import org.apache.log4j.Logger;
import org.apache.log4j.xml.DOMConfigurator;

public class HelloWorld3 {
	static Logger logger = Logger.getLogger(HelloWorld3.class.getName());
	
	public static void main(String[] args) {
		DOMConfigurator.configure("./conf/log4j.xml");
		
		HelloWorld3.logger.debug("Hello World!!!?");
	}
}

conf/log4j.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
 <log4j:configuration xmlns:log4j="">http://jakarta.apache.org/log4j/">
       <appender name="demo1" class="org.apache.log4j.FileAppender">
         <param name="File" value="C:\\test\\OutputLog4j.log" />
         <param name="Append" value="true" />
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%d [%p] %m%n" />
		</layout>
    </appender>
    <category name="logDemo">
       <priority value ="info" />
    </category>  	
	<root>
	   <priority value ="debug" />
   	   <appender-ref ref="demo1" />
	</root>
</log4j:configuration>
出力結果 (C:\test\OutputLog4j.log)
2013-07-21 02:24:07,125 [DEBUG] Hello World!!!?