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

クラス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