クラスMemoryHandler
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
-
コンストラクタのサマリー
コンストラクタコンストラクタ説明MemoryHandlerを作成し、LogManager構成プロパティに基づいて構成します。MemoryHandler(Handler target, int size, Level pushLevel) MemoryHandlerを作成します。 -
メソッドのサマリー
修飾子と型メソッド説明voidclose()Handlerを閉じて、関連するすべてのリソースを解放します。voidflush()ターゲットHandlerでフラッシュします。pushLevelを取得します。booleanisLoggable(LogRecord record) このHandlerが特定のLogRecordを内部バッファに実際にログに記録するかどうかを確認します。void内部バッファにLogRecordを格納します。voidpush()バッファされた出力をターゲットHandlerにプッシュします。voidsetPushLevel(Level newLevel) pushLevelを設定します。クラスjava.util.logging.Handlerで宣言されたメソッド
getEncoding, getErrorManager, getFilter, getFormatter, getLevel, reportError, setEncoding, setErrorManager, setFilter, setFormatter, setLevel
-
コンストラクタの詳細
-
MemoryHandler
public MemoryHandler()MemoryHandlerを作成し、LogManager構成プロパティに基づいて構成します。 -
MemoryHandler
MemoryHandlerを作成します。MemoryHandlerは、指定されたpushLevel引数およびバッファ・サイズ引数が使用されることを除き、LogManagerプロパティ(またはデフォルト値)に基づいて構成されます。- パラメータ:
target- 出力を通知するHandler。size- バッファ処理するログ・レコードの数(ゼロより大きくなければならない)pushLevel- プッシュを行うメッセージ・レベル- スロー:
IllegalArgumentException-サイズが0以下の場合
-
-
メソッドの詳細
-
publish
public void publish(LogRecord record) 内部バッファにLogRecordを格納します。Filterがある場合、指定されたログ・レコードがloggableかどうかを確認するために、そのisLoggableメソッドがコールされます。 可能でない場合は戻ります。 それ以外の場合、指定されたレコードが内部の循環バッファにコピーされます。 次に、レコードのレベル・プロパティがpushLevelと比較されます。 指定されたレベルがpushLevel以上の場合、pushがコールされ、バッファされたすべてのレコードがターゲット出力Handlerに書き込まれます。 -
push
public void push()バッファされた出力をターゲットHandlerにプッシュします。バッファがクリアされます。
-
flush
-
close
-
setPushLevel
public void setPushLevel(Level newLevel) pushLevelを設定します。LogRecordが内部バッファにコピーされた後、そのレベルがpushLevel以上の場合は、pushがコールされます。- パラメータ:
newLevel-pushLevelの新しい値
-
getPushLevel
-
isLoggable
public boolean isLoggable(LogRecord record) このHandlerが特定のLogRecordを内部バッファに実際にログに記録するかどうかを確認します。このメソッドは、
LogRecordに適切なレベルがあるかどうか、およびFilterを満たすかどうかをチェックします。 ただし、LogRecordがバッファ・コンテンツの"push"になるかどうかはチェックされません。LogRecordがnullの場合、falseが返されます。- オーバーライド:
isLoggable、クラスHandler- パラメータ:
record-LogRecord(nullの場合がある)。- 戻り値:
LogRecordがログに記録される場合はtrue。
-