Java : ConsoleHandler (ログ) - API使用例
ConsoleHandler (Java SE 18 & JDK 18) の使用例まとめです。
だいたいのメソッドを網羅済みです。
API仕様のおともにどうぞ。
概要
ConsoleHandlerは、ログを
- コンソール ( 標準エラー出力 : System.err )
へと出力するハンドラです。
final var handler = new ConsoleHandler();
System.out.println(handler.getLevel()); // INFO
System.out.println(handler.getFormatter()); // java.util.logging.SimpleFormatter@6be968ce
System.out.println(handler.getFilter()); // null
final var logger = Logger.getLogger("com.example.logging");
logger.setUseParentHandlers(false);
logger.addHandler(handler);
logger.info("TEST LOG!");
// 結果
// ↓
//10月 19, 2022 3:45:23 午後 com.example.logging.ConsoleHandlerTest$1 method
//情報: TEST LOG!
コンストラクタ
ConsoleHandler ()
final var handler = new ConsoleHandler();
System.out.println(handler.getLevel()); // INFO
System.out.println(handler.getFormatter()); // java.util.logging.SimpleFormatter@71a09cc3
System.out.println(handler.getFilter()); // null
final var logger = Logger.getLogger("com.example.logging");
logger.setUseParentHandlers(false);
logger.addHandler(handler);
logger.info("TEST LOG!");
// 結果
// ↓
//3月 16, 2022 12:48:10 午後 com.example.logging.ConsoleHandlerTest$1 method
//情報: TEST LOG!
メソッド
void close ()
ConsoleHandlerの close メソッドは、リソース(System.err)のクローズは行われず、フラッシュのみ行います。
final var handler = new ConsoleHandler();
final var logger = Logger.getLogger("com.example.logging");
logger.setUseParentHandlers(false);
logger.addHandler(handler);
logger.info("BEFORE CLOSE LOG!");
handler.close();
logger.info("AFTER CLOSE LOG!");
// 結果
// ↓
//3月 16, 2022 12:53:30 午後 com.example.logging.ConsoleHandlerTest$3 method
//情報: BEFORE CLOSE LOG!
//3月 16, 2022 12:53:30 午後 com.example.logging.ConsoleHandlerTest$3 method
//情報: AFTER CLOSE LOG!
void publish (LogRecord record)
final var handler = new ConsoleHandler() {
@Override
public synchronized void publish(LogRecord record) {
// 意図的にメッセージを加工します。
record.setMessage(record.getMessage() + " : override publish!");
super.publish(record);
}
};
final var logger = Logger.getLogger("com.example.logging");
logger.setUseParentHandlers(false);
logger.addHandler(handler);
logger.info("TEST LOG!");
// 結果
// ↓
//3月 16, 2022 12:52:02 午後 com.example.logging.ConsoleHandlerTest$2 method
//情報: TEST LOG! : override publish!
StreamHandlerで宣言されたメソッド
flush, isLoggable, setEncoding, setOutputStream
「Java API 使用例 : StreamHandler」をご参照ください。
Handlerで宣言されたメソッド
getEncoding, getErrorManager, getFilter, getFormatter, getLevel, reportError, setErrorManager, setFilter, setFormatter, setLevel
「Java API 使用例 : Handler」をご参照ください。