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

クラスLogRecord

  • すべての実装されたインタフェース:
    Serializable

    public class LogRecord
    extends Object
    implements Serializable
    LogRecordオブジェクトを使用して、ログのフレームワークと個々のログHandler間のロギングの要求を渡します。

    LogRecordがログのフレームワークに渡されると、LogRecordは論理的にそのフレームワークに所属します。クライアント・アプリケーションが使用したり、更新してはいけません。

    クライアント・アプリケーションが明示的なソース・メソッド名とソース・クラス名を指定しなかった場合、LogRecordクラスは、getSourceMethodNameまたはgetSourceClassName呼出し経由でそれらの名前が初めてアクセスされた時点で、呼出しスタックを分析することでそれらの名前を自動的に推測することに注意してください。 したがって、ロギングHandlerは、LogRecordを別のスレッドに渡したりRMI経由で送信したりしたあとでメソッド名やクラス名の情報を取得できるようにしたい場合は、getSourceClassName、getSourceMethodNameのいずれかを呼び出すことで、値が強制的に設定されるようにすべきです。

    直列化に関するノート:

    • LogRecordクラスは直列化可能である
    • パラメータ配列のオブジェクトは直列化できないので、直列化時にパラメータ配列のすべてのオブジェクトはObject.toStringを使用して対応するStringとして書き込まれる
    • ResourceBundleは直列化された形式の一部として転送されないが、リソース・バンドル名は転送され、受け側のオブジェクトのreadObjectメソッドは適切なリソース・バンドルを検出しようとする

    導入されたバージョン:
    1.4
    関連項目:
    直列化された形式
    • コンストラクタのサマリー

      コンストラクタ 
      コンストラクタ 説明
      LogRecord​(Level level, String msg)
      指定されたレベルとメッセージの値を持つLogRecordを構築します。
    • コンストラクタの詳細

      • LogRecord

        public LogRecord​(Level level,
                         String msg)
        指定されたレベルとメッセージの値を持つLogRecordを構築します。

        sequenceプロパティは新しい一意の値で初期化されます。 これらの連番値は、VM内で昇順に割り当てられます。

        JDK 9以降、イベント時間はInstantで表されます。 インスタント・プロパティは、システム上で最も利用可能なclockを使用して、「現在の瞬間」に初期化されます。

        スレッドIDプロパティは現在のスレッドに対する一意のIDで初期化されます。

        その他すべてのプロパティはnullに初期化されます。

        パラメータ:
        level - ログ・レベルの値
        msg - ローカライズされていないrawログ・メッセージ(nullも可能)
        関連項目:
        Clock.systemUTC()
    • メソッドの詳細

      • getLoggerName

        public String getLoggerName()
        ソースLoggerの名前を取得します。
        戻り値:
        ソース・ロガー名(nullの場合がある)
      • setLoggerName

        public void setLoggerName​(String name)
        ソースLoggerの名前を設定します。
        パラメータ:
        name - ソース・ロガー名(nullの場合がある)
      • getResourceBundle

        public ResourceBundle getResourceBundle()
        ローカリゼーション・リソース・バンドルを返します。

        これは、メッセージ文字列のフォーマット前にその文字列をローカライズするのに使用すべきResourceBundleです。 メッセージがローカライズ可能でない場合、または適切なResourceBundleが使用可能でない場合は、結果がnullになります。

        戻り値:
        ローカリゼーション・リソース・バンドル
      • setResourceBundle

        public void setResourceBundle​(ResourceBundle bundle)
        ローカリゼーション・リソース・バンドルを設定します。
        パラメータ:
        bundle - ローカリゼーション・バンドル(nullの場合がある)
      • getResourceBundleName

        public String getResourceBundleName()
        ローカリゼーション・リソース・バンドルの名前を返します。

        これは、メッセージ文字列のフォーマット前にその文字列をローカライズするのに使用すべきResourceBundleの名前です。 メッセージがローカライズ可能でない場合は、結果がnullになります。

        戻り値:
        ローカリゼーション・リソース・バンドルの名前
      • setResourceBundleName

        public void setResourceBundleName​(String name)
        ローカリゼーション・リソース・バンドルの名前を設定します。
        パラメータ:
        name - ローカリゼーション・バンドルの名前(nullの場合がある)
      • getLevel

        public Level getLevel()
        ログ・メッセージ・レベル、たとえばLevel.SEVEREを返します。
        戻り値:
        ログ・メッセージのレベル
      • setLevel

        public void setLevel​(Level level)
        ログ・メッセージのレベル、たとえばLevel.SEVEREを設定します。
        パラメータ:
        level - ログ・メッセージのレベル
      • getSequenceNumber

        public long getSequenceNumber()
        シーケンス番号を返します。

        通常、シーケンス番号はLogRecordコンストラクタに割り当てられ、コンストラクタは新規の各LogRecordに昇順で一意のシーケンス番号を割り当てます。

        戻り値:
        シーケンス番号
      • setSequenceNumber

        public void setSequenceNumber​(long seq)
        シーケンス番号を設定します。

        通常、シーケンス番号はLogRecordコンストラクタに割り当てられます。したがって、通常このメソッドを使用する必要がありません。

        パラメータ:
        seq - シーケンス番号
      • getSourceClassName

        public String getSourceClassName()
        ロギングの要求を発行したか、発行したと見なされるクラスの名前を返します。

        このsourceClassNameは検証されないため、スプーフィングされる可能性があることに注意してください。 この情報は、ロギング呼出しの一部として提供されたか、ロギング・フレームワークによって自動的に推測されたものです。 後者の場合、この情報は概算値でしかなく、実際、スタック・フレーム上の以前の呼出しを記述したものである可能性があります。

        情報が取得されない場合はnullの場合があります。

        戻り値:
        ソース・クラスの名前
      • setSourceClassName

        public void setSourceClassName​(String sourceClassName)
        ロギングの要求を発行したか、発行したと見なされるクラスの名前を設定します。
        パラメータ:
        sourceClassName - ソース・クラス名(nullの場合がある)
      • getSourceMethodName

        public String getSourceMethodName()
        ロギングの要求を発行したか、発行したと見なされるクラスの名前を返します。

        このsourceMethodNameは検証されないため、スプーフィングされる可能性があることに注意してください。 この情報は、ロギング呼出しの一部として提供されたか、ロギング・フレームワークによって自動的に推測されたものです。 後者の場合、この情報は概算値でしかなく、実際、スタック・フレーム上の以前の呼出しを記述したものである可能性があります。

        情報が取得されない場合はnullの場合があります。

        戻り値:
        ソース・メソッドの名前
      • setSourceMethodName

        public void setSourceMethodName​(String sourceMethodName)
        ロギングの要求を発行したか、発行したと見なされるメソッドの名前を設定します。
        パラメータ:
        sourceMethodName - ソース・メソッド名(nullの場合がある)
      • getMessage

        public String getMessage()
        ローカライズまたはフォーマット処理の前に、未変換のログ・メッセージを返します。

        nullの場合があり、これは空の文字列""と同等です。

        このメッセージは、ファイナル・テキストまたはローカリゼーション・キーのいずれかです。

        フォーマット処理時に、ソース・ロガーがローカリゼーションResourceBundleを持っており、そのResourceBundleがこのメッセージ文字列に対するエントリを持っている場合は、メッセージ文字列はローカライズされた値に置き換えられます。

        戻り値:
        未変換のメッセージ文字列
      • setMessage

        public void setMessage​(String message)
        ローカライズまたはフォーマット処理の前に、未変換のログ・メッセージを設定します。
        パラメータ:
        message - rawメッセージ文字列(nullの場合もある)
      • getParameters

        public Object[] getParameters()
        ログ・メッセージにパラメータを返します。
        戻り値:
        ログ・メッセージのパラメータ パラメータが存在しない場合はnull
      • setParameters

        public void setParameters​(Object[] parameters)
        ログ・メッセージにパラメータを設定します。
        パラメータ:
        parameters - ログ・メッセージのパラメータ。(nullの可能性がある)
      • getThreadID

        public int getThreadID()
        メッセージの発生元のスレッドの識別子を返します。

        これはJava VM内のスレッド識別子であり、任意のオペレーティング・システム識別子にマッピングされる場合とされない場合があります。

        戻り値:
        スレッドID
      • setThreadID

        public void setThreadID​(int threadID)
        メッセージの発生元のスレッドの識別子を設定します。
        パラメータ:
        threadID - スレッドのID
      • getMillis

        public long getMillis()
        1970年以降の切り捨てイベント時間をミリ秒単位で取得します。
        APIに関するノート:
        完全なナノ秒分解能イベント時間を得るには、getInstant()を使用します。
        実装要件:
        これはgetInstant().toEpochMilli()を呼び出すのと同じです。
        戻り値:
        1970年以降の切り捨てイベント時間(ミリ秒単位)
        関連項目:
        getInstant()
      • setMillis

        @Deprecated
        public void setMillis​(long millis)
        非推奨。
        LogRecordは、Instant値を使用して、ナノ秒の分解能でタイムスタンプを維持します。 このため、setMillis()に優先してsetInstant()を使用する必要があります。
        イベントの時間を設定します。
        実装要件:
        これはsetInstant(Instant.ofEpochMilli(millis))を呼び出すのと同じです。
        パラメータ:
        millis - 1970年以降のイベントの時間(ミリ秒単位)
        関連項目:
        setInstant(java.time.Instant)
      • getInstant

        public Instant getInstant()
        イベントが発生した瞬間を取得します。
        戻り値:
        イベントが発生した瞬間。
        導入されたバージョン:
        9
      • setInstant

        public void setInstant​(Instant instant)
        イベントが発生した瞬間を設定します。

        指定されたinstantが将来的にあまりにも遠すぎるタイムライン上のポイントを表す場合、またはlongミリ秒とナノ秒の調整に収まるようにすると、ArithmeticExceptionがスローされます。

        パラメータ:
        instant - イベントが発生した瞬間。
        例外:
        NullPointerException - instantがnullの場合。
        ArithmeticException - instant.toEpochMilli()の呼び出し中に数値オーバーフローが発生した場合。
        導入されたバージョン:
        9
      • getThrown

        public Throwable getThrown()
        ログ・レコードに関連したThrowableを返します。

        イベントが例外を含む場合、これは例外オブジェクトになります。 含まない場合はnullになります。

        戻り値:
        throwable
      • setThrown

        public void setThrown​(Throwable thrown)
        ログ・イベントに関連したThrowableを設定します。
        パラメータ:
        thrown - スロー可能オブジェクト(nullも可能)