「Java」java.util.logging 使ってみる

Java 標準で実装されてるコアロギング機能 ( java.util.logging パッケージ ) を簡単に使ってみたので、その時のメモ。

java.util.logging (Java Platform SE 7 )
http://docs.oracle.com/javase/jp/7/api/java/util/logging/package-summary.html

以下の感じでできるみたいです。
簡単のため、コンソールへのログ出力のみです。

■ Test.java

package test;

import java.io.FileInputStream;
import java.util.logging.Level;
import java.util.logging.LogManager;
import java.util.logging.Logger;

public class Test {

	private static LogManager logManager = LogManager.getLogManager();
	private static Logger logger = Logger.getLogger(Test.class.getName());

	public static void main(String[] args) throws Exception {
		logManager.readConfiguration(new FileInputStream("logging.properties"));
		
		logger.log(Level.SEVERE, "SEVERE !!");
		logger.log(Level.WARNING, "WARN !!");
		logger.log(Level.INFO, "INFO !!");
		logger.log(Level.CONFIG, "CONFIG !!");
		logger.log(Level.FINE, "FINE !!");
		logger.log(Level.FINER, "FINER !!");
		logger.log(Level.FINEST, "FINEST !!");
	}
}

※ logging.properties はデフォルトでは JRE インストールディレクトリの lib 配下のものが使われるみたいですが、独自のファイル使う場合は、上記のようにLogManager#readConfiguration とかで読み込む。あと、システムプロパティ "java.util.logging.config.file" でも OK とのこと。

・LogManager (Java Platform SE 7 )
http://docs.oracle.com/javase/jp/7/api/java/util/logging/LogManager.html

■ logging.properties

handlers= java.util.logging.ConsoleHandler
.level = FINEST

java.util.logging.ConsoleHandler.level = FINEST
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

■ 実行結果

7 14, 2014 1:01:05 午前 test.Test main
重大: SEVERE !!
7 14, 2014 1:01:05 午前 test.Test main
警告: WARN !!
7 14, 2014 1:01:05 午前 test.Test main
情報: INFO !!
7 14, 2014 1:01:05 午前 test.Test main
構成: CONFIG !!
7 14, 2014 1:01:05 午前 test.Test main
普通: FINE !!
7 14, 2014 1:01:05 午前 test.Test main
詳細: FINER !!
7 14, 2014 1:01:05 午前 test.Test main
最も詳細: FINEST !!

以上です。