- java.lang.Object
-
- java.util.logging.Formatter
-
- java.util.logging.SimpleFormatter
-
public class SimpleFormatter extends Formatter
LogRecord
の簡単なサマリーを人が理解できる形式で出力します。 このサマリーは通常、1行か2行になります。構成:
SimpleFormatter
は、ログ・メッセージをフォーマットするために、java.util.logging.SimpleFormatter.format
プロパティで指定されたフォーマット文字列で初期化されます。 このプロパティは、ロギング・プロパティの構成ファイルか、システム・プロパティとして定義されます。 このプロパティがロギング・プロパティとシステム・プロパティの両方で設定されている場合は、システム・プロパティで指定されたフォーマット文字列が使用されます。 このプロパティが定義されていないか、指定されたフォーマット文字列がillegalである場合、デフォルトのフォーマットは実装に固有となります。- 導入されたバージョン:
- 1.4
- 関連項目:
Formatter
-
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 SimpleFormatter()
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 String
format(LogRecord record)
指定されたLogRecordをフォーマットします。-
クラス java.util.logging.Formatterで宣言されたメソッド
formatMessage, getHead, getTail
-
-
-
-
メソッドの詳細
-
format
public String format(LogRecord record)
指定されたLogRecordをフォーマットします。フォーマットは、
java.util.logging.SimpleFormatter.format
プロパティでフォーマット文字列を指定することでカスタマイズできます。 指定されたLogRecord
は、次を呼び出すようにフォーマットされます。String.format
(format, date, source, logger, level, message, thrown);
format
-java.util.logging.SimpleFormatter.format
プロパティまたはデフォルトのフォーマットで指定されたjava.util.Formatter
のフォーマット文字列。date
-ZoneId.systemDefault()
システム時間帯のログ・レコードの「イベント時間」を表すZonedDateTime
オブジェクト。source
- 使用可能な場合は、呼出し元を表す文字列。使用できない場合は、ロガーの名前。logger
- ロガーの名前。level
- ログ・レベル。message
-Formatter.formatMessage(LogRecord)
メソッドから返された、フォーマットされたログ・メッセージ。java.text
のフォーマットを使用し、java.util.Formatter format
引数は使用しません。thrown
- ログ・レコードおよび改行文字で始まるそのバックトレースに関連付けられたthrowableを表現する文字列(存在する場合)。バックトレースがない場合は、空の文字列。
フォーマット例を示します。
-
java.util.logging.SimpleFormatter.format="%4$s: %5$s [%1$tc]%n"
この例では、ログ・レベル(
4$
)、ログ・メッセージ(5$
)、およびタイムスタンプ(1$
)を角括弧に囲んで1行で出力します。WARNING: warning message [Tue Mar 22 13:11:31 PDT 2011]
-
java.util.logging.SimpleFormatter.format="%1$tc %2$s%n%4$s: %5$s%6$s%n"
この例は、1行目にはタイムスタンプ(
1$
)とソース(2$
)、2行目にはログ・レベル(4$
)とログ・メッセージ(5$
)、使用可能な場合は、その後にスロー可能オブジェクトとそのバックトレース(6$
)を含む、2行を出力します。Tue Mar 22 13:11:31 PDT 2011 MyClass fatal SEVERE: several message with an exception java.lang.IllegalArgumentException: invalid argument at MyClass.mash(MyClass.java:9) at MyClass.crunch(MyClass.java:6) at MyClass.main(MyClass.java:3)
-
java.util.logging.SimpleFormatter.format="%1$tb %1$td, %1$tY %1$tl:%1$tM:%1$tS %1$Tp %2$s%n%4$s: %5$s%n"
次の例は、前の例と同じように2行を出力しますが、異なる日付/時間のフォーマットを使用し、スロー可能オブジェクトとそのバックトレースは出力しません。
Mar 22, 2011 1:11:31 PM MyClass fatal SEVERE: several message with an exception
-
java.util.logging.SimpleFormatter.format="%1$tb %1$td, %1$tY %1$tl:%1$tM:%1$tS.%1$tN %1$Tp %2$s%n%4$s: %5$s%6$s%n"
JDK 9以降、
java.util.logging
はjava.time
を使用してより正確なタイムスタンプを作成します。 上記の書式を使用すると、日付/時間書式に.%1$tN
を追加して、ナノ秒も表示されるようにすることができます:Feb 06, 2015 5:33:10.279216000 PM example.Main main INFO: This is a test
このメソッドは、サブクラスでオーバーライドすることもできます。 メッセージ・フィールドをローカライズし、フォーマットするには、
Formatter.formatMessage(java.util.logging.LogRecord)
簡易メソッドを使用することをお薦めします。
-
-