クラスSimpleFormatter

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プロパティで指定された書式文字列を使用して初期化され、ログ・メッセージをformatします。 このプロパティは、「ロギング・プロパティ」構成ファイルまたはシステム・プロパティとして定義できます。 このプロパティがロギング・プロパティとシステム・プロパティの両方で設定されている場合は、システム・プロパティで指定されたフォーマット文字列が使用されます。 このプロパティが定義されていない場合、または指定された書式文字列がillegalの場合、デフォルトの書式は実装固有です。

導入されたバージョン:
1.4
関連項目:
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    SimpleFormatterを作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    format(LogRecord record)
    指定されたLogRecordをフォーマットします。

    Formatterクラスで宣言されたメソッド

    formatMessage, getHead, getTail
    修飾子と型
    メソッド
    説明
    ログ・レコードからのメッセージ文字列をローカライズするようにフォーマットします。
    フォーマットされたレコードのセットのヘッダー文字列を返します。
    フォーマットされたレコード・セットの末尾の文字列を返します。

    クラスオブジェクトで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    オブジェクトの文字列表現を返します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • コンストラクタの詳細

    • SimpleFormatter

      public SimpleFormatter()
      SimpleFormatterを作成します。
  • メソッドの詳細

    • format

      public String format(LogRecord record)
      指定されたLogRecordをフォーマットします。

      フォーマットは、java.util.logging.SimpleFormatter.formatプロパティにフォーマット文字列を指定することでカスタマイズできます。 指定されたLogRecordは、次を呼び出すようにフォーマットされます。

         String.format(format, date, source, logger, level, message, thrown);
      
      ここで、引数は次のとおりです。
      1. format - java.util.logging.SimpleFormatter.formatプロパティまたはデフォルトのフォーマットで指定されたjava.util.Formatterのフォーマット文字列。
      2. date - ZoneId.systemDefault()システム・タイムゾーンのログ・レコードの「イベント時間」を表すZonedDateTimeオブジェクト。
      3. source - 使用可能な場合は、呼出し元を表す文字列。使用できない場合は、ロガーの名前。
      4. logger - ロガーの名前。
      5. level - ログ・レベル
      6. message - Formatter.formatMessage(LogRecord)メソッドから返された、フォーマットされたログ・メッセージ。 java.textのフォーマットを使用し、java.util.Formatter format引数は使用しません。
      7. 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$)とソース(2$)が含まれている2行を出力します。2行目には、ログ・レベル(4$)とログ・メッセージ(5$)が含まれ、その後にスロー可能オブジェクトとそのバック・トレース(6$)(ある場合)が続きます:

            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.loggingjava.timeを使用して、より正確なタイムスタンプを作成します。 上記の書式を使用すると、日付/時間書式に.%1$tNを追加して、ナノ秒も表示されるようにすることができます:

            Feb 06, 2015 5:33:10.279216000 PM example.Main main
            INFO: This is a test
            

      このメソッドは、サブクラスでオーバーライドすることもできます。 Formatter.formatMessage(LogRecord)コンビニエンス・メソッドを使用して、メッセージ・フィールドをローカライズおよびフォーマットすることをお薦めします。

      定義:
      format、クラスFormatter
      パラメータ:
      record - フォーマットされるログ・レコード。
      戻り値:
      フォーマットされたログ・レコード