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