Java : SimpleFormatter (ログ) - API使用例
SimpleFormatter (Java SE 18 & JDK 18) の使用例まとめです。
だいたいのメソッドを網羅済みです。
API仕様のおともにどうぞ。
概要
SimpleFormatterは、ログをプレーンテキストとして出力します。
final var logger = Logger.getLogger("com.example.logging");
logger.setUseParentHandlers(false);
// ConsoleHandlerのデフォルトのフォーマッタはSimpleFormatterとなります。
final var handler = new ConsoleHandler();
System.out.println(handler.getFormatter()); // java.util.logging.SimpleFormatter@d76b01a
logger.addHandler(handler);
logger.info("TEST LOG : 1");
logger.info("TEST LOG : 2");
logger.info("TEST LOG : 3");
// 結果
// ↓
//3月 18, 2022 2:31:34 午後 com.example.logging.SimpleFormatterTest$1 method
//情報: TEST LOG : 1
//3月 18, 2022 2:31:34 午後 com.example.logging.SimpleFormatterTest$1 method
//情報: TEST LOG : 2
//3月 18, 2022 2:31:34 午後 com.example.logging.SimpleFormatterTest$1 method
//情報: TEST LOG : 3
1件のログにつき2行で出力されます。
ログメッセージの他に、ログレベル、日時、クラス名、メソッド名などの付加情報も出力してくれます。
コンストラクタ
SimpleFormatter ()
final var logger = Logger.getLogger("com.example.logging");
logger.setUseParentHandlers(false);
final var pattern = Path.of("R:", "java-work", "log.txt");
final var handler = new FileHandler(pattern.toString());
logger.addHandler(handler);
System.out.println(handler.getFormatter()); // java.util.logging.XMLFormatter@2c83f1d1
handler.setFormatter(new SimpleFormatter());
System.out.println(handler.getFormatter()); // java.util.logging.SimpleFormatter@79acc4ff
logger.info("TEST LOG!");
System.out.print(Files.readString(pattern));
// 結果
// ↓
//3月 18, 2022 2:36:37 午後 com.example.logging.SimpleFormatterTest$2 method
//情報: TEST LOG!
メソッド
String format (LogRecord record)
class MyFormatter extends SimpleFormatter {
@Override
public String format(LogRecord logRecord) {
logRecord.setMessage(logRecord.getMessage() + " : override format!");
return super.format(logRecord);
}
}
final var logger = Logger.getLogger("com.example.logging");
logger.setUseParentHandlers(false);
final var handler = new ConsoleHandler();
logger.addHandler(handler);
handler.setFormatter(new MyFormatter());
logger.info("TEST LOG!");
// 結果
// ↓
//3月 18, 2022 3:42:20 午後 com.example.logging.SimpleFormatterTest$3 method
//情報: TEST LOG! : override format!
Formatterで宣言されたメソッド
formatMessage, getHead, getTail
「Java API 使用例 : Formatter」をご参照ください。