DTD仕様が、「Java Logging API仕様」の付録Aとして提供されます。
XMLFormatterは、任意の文字エンコーディングを使用できますが、通常UTF-8を使用することをお薦めします。 文字エンコーディングは出力Handlerで設定できます。
- 実装要件:
- JDK 9以降、LogRecordのインスタンスには
Instant
が含まれています。このInstant
は、ミリ秒の分解能以下のナノ秒を持つことができます。 DTD仕様が更新され、オプションの<nanos>
要素を使用できるようになりました。 デフォルトでは、XMLFormatterはミリ秒の分解能の下でナノ秒の調整をコンピュートします。(LogRecord.getInstant().getNano() % 1000_000
を使用して) - これが0でない場合、この調整値は新しい<nanos>
要素に出力されます。millis
とnanos
は、それぞれ<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を構成することができます。useInstant
がfalse
の場合、古い書式は保持されます。useInstant
がtrue
(デフォルト)ある場合は、<nanos>
要素が印刷されますと<date>
要素がformattedの瞬間を含んでいます。たとえば、新しい
<nano>
要素を省略するためにXMLFormatterのプレーン・インスタンスを構成するには、java.util.logging.XMLFormatter.useInstant = false
をロギング構成で指定できます。 - 導入されたバージョン:
- 1.4
-
コンストラクタのサマリー
-
メソッドのサマリー
クラス java.util.logging.Formatterで宣言されたメソッド
formatMessage
-
コンストラクタの詳細
-
XMLFormatter
public XMLFormatter()XMLFormatterの新しいインスタンスを作成します。- 実装要件:
- JDK 9以降、XMLFormatterはレコード「イベント時間」をInstantとして出力します。 この瞬間は、システム上で利用可能な最高の解像度です。
<date>
要素には、DateTimeFormatter.ISO_INSTANT
でフォーマットされたインスタントが含まれます。 さらに、インスタントにミリ秒の分解能よりも数ナノ秒低い値が含まれている場合は、ナノ秒の調整を含むオプションの<nanos>
要素が出力されます。「ログ構成」でプロパティを指定することで、この新しい動作を無効にして、古い書式をリストアすることができます。
LogManager.getLogManager().getProperty( this.getClass().getName()+".useInstant")
が"false"
または"0"
の場合、古いフォーマットがリストアされます。
-
-
メソッドの詳細
-
format
指定されたメッセージをXMLにフォーマットします。このメソッドは、サブクラスでオーバーライドすることができます。 メッセージ・フィールドをローカライズし、フォーマットするには、
Formatter.formatMessage(java.util.logging.LogRecord)
簡易メソッドを使用することをお薦めします。 -
getHead
XMLでフォーマットされたレコードのセットのヘッダー文字列を返します。 -
getTail
XMLでフォーマットされたレコードのセットの末尾の文字列を返します。
-