モジュール java.logging
パッケージ java.util.logging

クラスXMLFormatter


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

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

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

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

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

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

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

      • 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(java.util.logging.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文字列