public class MemoryHandler extends Handler
通常、この Handler は単に、受信した LogRecord を自身のメモリーバッファー内に格納し、以前のレコードを破棄します。このバッファー処理は非常に低コストであり、フォーマット処理のコストもかかりません。特定のトリガー条件が成立すると、MemoryHandler はバッファー内の現在の内容をターゲット Handler にプッシュします。そのハンドラは通常、その内容を外部に向けて発行します。
バッファーをプッシュするトリガモデルには、主に次の 3 つがあります。
構成: 各 MemoryHandler はデフォルトで、次の LogManager 構成プロパティーを使って初期化されます。プロパティーが未定義である場合 (または無効な値を持つ場合)、指定されたデフォルト値が使用されます。デフォルト値が定義されていない場合は、RuntimeException がスローされます。
コンストラクタと説明 |
---|
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, 2013, Oracle and/or its affiliates. All rights reserved.