モジュール 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が含まれ、これはミリ秒の解像度を下回るナノ秒を保持できます。 DTD仕様が更新され、オプションの<nanos>要素を使用できるようになりました。 デフォルトでは、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プロパティを指定することで、XMLFormattersを古い形式に戻すように構成できます。 useInstantfalseの場合、古いフォーマットは保持されます。 useInstanttrue (デフォルト)の場合は、<nanos>要素が出力され、<date>要素にはフォーマット済インスタントが含まれます。

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

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

      • XMLFormatter

        public XMLFormatter()
        XMLFormatterの新しいインスタンスを作成します。
        実装要件:
        JDK 9以降、XMLFormatterはレコードのイベント時間をインスタントとして出力します。 この瞬間は、システム上で利用可能な最高の解像度を持っています。 <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文字列