広告

Java : SimpleFormatter (ログ) - API使用例

SimpleFormatter (Java SE 18 & JDK 18) の使用例まとめです。
だいたいのメソッドを網羅済みです。
API仕様のおともにどうぞ。


概要

LogRecordの簡単なサマリーを人が理解できる形式で出力します。 このサマリーは通常、1行か2行になります。

クラス構成

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 ()

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)

指定されたLogRecordをフォーマットします。

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」をご参照ください。


関連記事

ページの先頭へ