クラスXMLFormatter

java.lang.Object
java.util.logging.Formatter
java.util.logging.XMLFormatter

public class XMLFormatter extends Formatter
LogRecordを標準XML形式でフォーマットします。

DTD仕様が、「Java Logging API仕様」の付録Aとして提供されます。

XMLFormatterは、任意の文字エンコーディングを使用できますが、通常UTF-8を使用することをお薦めします。 文字エンコーディングは出力Handlerで設定できます。

実装要件:
JDK 9以降、LogRecordのインスタンスには、ミリ秒の解像度を下回るナノ秒を持つことができるInstantが含まれています。 オプションの<nanos>要素を使用できるように、DTD仕様が更新されました。 デフォルトでは、XMLFormatterはミリ秒の解像度(LogRecord.getInstant().getNano() % 1000_000を使用して)を下回るナノ秒の調整をコンピュート - これが0でない場合、この調整値は新しい<nanos>要素に出力されます。 その後、イベント・インスタントは、Instant.ofEpochSecond(millis/1000L, (millis % 1000L) * 1000_000L + nanos)を使用して再構築できます。ここで、millisおよびnanosは、それぞれ<millis>および<nanos>要素で直列化された番号を表します。
<date>要素には、DateTimeFormatter.ISO_INSTANTフォーマッタでフォーマットされたインスタント全体が含まれるようになります。

古いパーサーとの互換性のために、ロギング構成で<xml-formatter-fully-qualified-class-name>.useInstant = false propertyを指定することで、XMLFormattersを古い形式に戻すように構成できます。 useInstantfalseの場合、古い書式設定が保持されます。 useInstanttrue (デフォルト)の場合、<nanos>要素が出力され、<date>要素にformattedインスタントが含まれます。

たとえば、XMLFormatterのプレーン・インスタンスを構成して新しい<nano>要素を省略するには、ロギング構成でjava.util.logging.XMLFormatter.useInstant = falseを指定できます。

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

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

    修飾子と型
    メソッド
    説明
    format(LogRecord record)
    指定されたメッセージをXMLにフォーマットします。
    XMLでフォーマットされたレコードのセットのヘッダー文字列を返します。
    XMLでフォーマットされたレコードのセットの末尾の文字列を返します。

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

    formatMessage
    修飾子と型
    メソッド
    説明
    ログ・レコードからのメッセージ文字列をローカライズするようにフォーマットします。

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

    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であるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • コンストラクタの詳細

    • XMLFormatter

      public XMLFormatter()
      XMLFormatterの新しいインスタンスを作成します。
      実装要件:
      JDK 9以降、XMLFormatterはレコード「イベント時間」をInstantとして出力します。 このインスタントには、システムで使用可能な最適な解像度があります。 <date>要素には、DateTimeFormatter.ISO_INSTANTでフォーマットされたインスタントが含まれます。 さらに、ナノ秒の調整を含むオプションの<nanos>要素は、そのインスタントにミリ秒の解像度を下回るナノ秒が含まれている場合に出力されます。

      この新しい動作をオフにし、古い書式設定をリストアするには、「ログ構成」にプロパティを指定します。 LogManager.getLogManager().getProperty( this.getClass().getName()+".useInstant")"false"または"0"の場合、古い書式がリストアされます。

  • メソッドの詳細

    • format

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

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

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

      public String getHead(Handler h)
      XMLでフォーマットされたレコードのセットのヘッダー文字列を返します。
      オーバーライド:
      getHead、クラスFormatter
      パラメータ:
      h - ターゲット・ハンドラ(nullも可能)
      戻り値:
      有効なXML文字列
    • getTail

      public String getTail(Handler h)
      XMLでフォーマットされたレコードのセットの末尾の文字列を返します。
      オーバーライド:
      getTail、クラスFormatter
      パラメータ:
      h - ターゲット・ハンドラ(nullも可能)
      戻り値:
      有効なXML文字列