java

JavaのLogger

JavaのログAPIといえばApache Log4jですが、ちょっとしたプログラムを作るときには、追加のライブラリが必要ないJava標準のLoggerも便利です。

設定ファイルから出力を制御する

下記のようにLoggerをセットアップするとソースコードのルートディレクトリのlogger.propertiesを読み込んでLoggerをセットアップできます。

import java.io.*;
import java.util.logging.LogManager;
import java.util.logging.Logger;
public class QuizAnswer {
private static Logger logger = Logger.getLogger(Logger.GLOBAL_LOGGER_NAME);
public static void main(String[] args) throws SecurityException, IOException {
setup();
logger.info("Hello, world!");
}
public static void setup() throws SecurityException, IOException {
String path = "/logging.properties";
InputStream in = null;
try {
in = QuizAnswer.class.getResourceAsStream(path);
LogManager.getLogManager().readConfiguration(in);
logger = Logger.getLogger(Logger.GLOBAL_LOGGER_NAME);
} finally {
if (in != null) in.close();
}
}
}

設定ファイル

設定ファイルでは、パッケージやクラスごとに出力レベルを指定することができます。
プロパティファイルにハンドラーを指定することで出力先をコンソールやファイルに切り替えられます。
メッセージのフォーマットもFormatterを実装して指定することで自由に変えることができます。

handlers = java.util.logging.ConsoleHandler
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
.level = WARNING
タイトルとURLをコピーしました