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

クラスMemoryHandler

java.lang.Object
java.util.logging.Handler
java.util.logging.MemoryHandler

public class MemoryHandler extends Handler
メモリー内の循環バッファでリクエストをバッファするHandler

通常、このHandlerは、受信したLogRecordsをメモリー・バッファに格納し、以前のレコードを破棄します。 このバッファ処理は非常に低コストであり、フォーマット処理のコストもかかりません。 特定のトリガー条件では、MemoryHandlerは、現在のバッファ・コンテンツをターゲットHandlerにプッシュします。このターゲットは、通常は外部に公開します。

バッファをプッシュするトリガー・モデルには、主に次の3つがあります。

  • 着信LogRecordには、事前定義済レベル(pushLevel)より大きいタイプがあります。
  • 外部クラスは、pushメソッドを明示的にコールします。
  • サブクラスは、logメソッドをオーバーライドし、受信する各LogRecordをスキャンし、レコードが目的の条件に一致する場合はpushをコールします。

構成: デフォルトでは、各MemoryHandlerは、次のLogManager構成プロパティを使用して初期化されます。<handler-name>は、ハンドラの完全修飾クラス名を示します。 プロパティが未定義である場合(または無効な値を持つ場合)、指定されたデフォルト値が使用されます。 デフォルト値が定義されていない場合は、RuntimeExceptionがスローされます。

  • <handler-name>.levelは、Handler (デフォルトはLevel.ALLです)のレベルを指定します。
  • <handler-name>.filterは、(デフォルトはFilterではありません)を使用するFilterクラスの名前を指定します。
  • <handler-name>.sizeはバッファー・サイズを定義します(デフォルトは1000)。
  • <handler-name>.pushは、pushLevel (デフォルトはlevel.SEVEREです)を定義します。
  • <handler-name>.targetは、ターゲットのHandler クラスの名前を指定します。(デフォルトなし)。

たとえば、MemoryHandlerのプロパティは次のようになります。

  • java.util.logging.MemoryHandler.level=INFO
  • java.util.logging.MemoryHandler.formatter=java.util.logging.SimpleFormatter

カスタム・ハンドラ(例: com.foo.MyHandler)の場合、プロパティは次のようになります。

  • com.foo.MyHandler.level=INFO
  • com.foo.MyHandler.formatter=java.util.logging.SimpleFormatter

導入されたバージョン:
1.4