- 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が含まれ、これはミリ秒の解像度を下回るナノ秒を保持できます。 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を古い形式に戻すように構成できます。useInstantがfalseの場合、古いフォーマットは保持されます。useInstantがtrue(デフォルト)の場合は、<nanos>要素が出力され、<date>要素にはフォーマット済インスタントが含まれます。たとえば、新しい
<nano>要素を省略するようにXMLFormatterのプレーン・インスタンスを構成するには、ロギング構成でjava.util.logging.XMLFormatter.useInstant = falseを指定できます。 - 導入されたバージョン:
- 1.4
-
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 XMLFormatter()XMLFormatterの新しいインスタンスを作成します。
-
-
-
コンストラクタの詳細
-
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)簡易メソッドを使用することをお薦めします。
-
-