モジュール 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
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    XMLFormatterの新しいインスタンスを作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    format(LogRecord record)
    指定されたメッセージをXMLにフォーマットします。
    XMLでフォーマットされたレコードのセットのヘッダー文字列を返します。
    XMLでフォーマットされたレコードのセットの末尾の文字列を返します。

    クラスjava.util.logging.Formatterで宣言されたメソッド

    formatMessage

    クラスjava.lang.Objectで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • コンストラクタの詳細

    • 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文字列