public class MemoryHandler extends Handler
通常、このHandlerは単に、受信したLogRecordを自身のメモリー・バッファ内に格納し、以前のレコードを破棄します。このバッファ処理は非常に低コストであり、フォーマット処理のコストもかかりません。特定のトリガー条件が成立すると、MemoryHandlerはバッファ内の現在の内容をターゲットHandlerにプッシュします。そのハンドラは通常、その内容を外部に向けて発行します。
バッファをプッシュするトリガー・モデルには、主に次の3つがあります。
構成: デフォルトで各MemoryHandlerは次のLogManager構成プロパティを使用して初期化されます。ここで<handler-name>はハンドラの完全修飾クラス名を示します。プロパティが未定義である場合(または無効な値を持つ場合)、指定されたデフォルト値が使用されます。デフォルト値が定義されていない場合は、RuntimeExceptionがスローされます。
たとえば、MemoryHandler
のプロパティは次のようになります。
カスタム・ハンドラ(例: com.foo.MyHandler)の場合、プロパティは次のようになります。
コンストラクタと説明 |
---|
MemoryHandler()
MemoryHandlerを作成してLogManagerの構成プロパティに基づき構成します。
|
MemoryHandler(Handler target, int size, Level pushLevel)
MemoryHandlerを作成します。
|
修飾子と型 | メソッドと説明 |
---|---|
void |
close()
Handlerを閉じて、関連するすべてのリソースを解放します。
|
void |
flush()
ターゲットHandlerをフラッシュします。
|
Level |
getPushLevel()
pushLevelを取得します。
|
boolean |
isLoggable(LogRecord record)
このHandlerが、指定されたLogRecordを内部バッファに実際にロギングするかどうかを調べます。
|
void |
publish(LogRecord record)
内部バッファにLogRecordを格納します。
|
void |
push()
任意のバッファ処理された出力をターゲットHandlerにプッシュします。
|
void |
setPushLevel(Level newLevel)
pushLevelを設定します。
|
getEncoding, getErrorManager, getFilter, getFormatter, getLevel, reportError, setEncoding, setErrorManager, setFilter, setFormatter, setLevel
public MemoryHandler()
public MemoryHandler(Handler target, int size, Level pushLevel)
MemoryHandlerは、指定されたpushLevel引数とバッファ・サイズ引数が使用されないかぎり、LogManagerプロパティまたはそのデフォルト値に基づいて構成されます。
target
- 出力を通知するHandler。size
- バッファ処理するログ・レコードの数(ゼロより大きくなければならない)pushLevel
- プッシュを行うメッセージ・レベルIllegalArgumentException
- サイズが0以下
の場合public void publish(LogRecord record)
Filterが存在する場合、そのisLoggableメソッドが呼び出され、指定されたログ・レコードがロギング可能かどうかがチェックされます。可能でない場合は戻ります。それ以外の場合、指定されたレコードが内部の循環バッファにコピーされます。次に、そのレコードのlevelプロパティとpushLevelとが比較されます。指定されたレベルがpushLevelと等しいかそれよりも大きい場合、pushを呼び出すことで、バッファ内のすべてのレコードがターゲット出力Handlerに書き込まれます。
public void push()
バッファがクリアされます。
public void flush()
MemoryHandlerバッファの現在の内容は書き出されないことに注意してください。書き出すにはpushが必要になります。
public void close() throws SecurityException
close
、クラス: Handler
SecurityException
- セキュリティ・マネージャが存在する場合で、呼出し元がLoggingPermission("control")を持っていない場合。public void setPushLevel(Level newLevel) throws SecurityException
newLevel
- pushLevelの新しい値SecurityException
- セキュリティ・マネージャが存在する場合で、呼出し元がLoggingPermission("control")を持っていない場合。public Level getPushLevel()
public boolean isLoggable(LogRecord record)
このメソッドは、LogRecordのレベルが適切かどうか、およびそのレコードが任意のFilterを満足するかどうかをチェックします。ただし、これは、このLogRecordによってバッファの内容が「プッシュ」されるかどうかはチェックしません。LogRecordがnullの場合、これはfalseを返します。
isLoggable
、クラス: Handler
record
- LogRecord バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.