Handlerです。
 
 通常、このHandlerは単に、受信したLogRecordを自身のメモリー・バッファ内に格納し、以前のレコードを破棄します。 このバッファ処理は非常に低コストであり、フォーマット処理のコストもかかりません。 特定のトリガー条件が成立すると、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 specifies the name of the target Handlerclass.(デフォルトなし)
 たとえば、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
- 
コンストラクタの詳細- 
MemoryHandlerpublic MemoryHandler()MemoryHandlerを作成してLogManagerの構成プロパティに基づき構成します。
- 
MemoryHandlerMemoryHandlerを作成します。MemoryHandlerは、指定されたpushLevel引数とバッファ・サイズ引数が使用されないかぎり、LogManagerプロパティまたはそのデフォルト値に基づいて構成されます。- パラメータ:
- target- 出力を通知するHandler。
- size- バッファ処理するログ・レコードの数(ゼロより大きくなければならない)
- pushLevel- プッシュを行うメッセージ・レベル
- 例外:
- IllegalArgumentException-- サイズが0以下の場合
 
 
- 
- 
メソッドの詳細- 
publishpublic void publish(LogRecord record)内部バッファにLogRecordを格納します。Filterが存在する場合、そのisLoggableメソッドが呼び出され、指定されたログ・レコードがロギング可能かどうかがチェックされます。 可能でない場合は戻ります。 それ以外の場合、指定されたレコードが内部の循環バッファにコピーされます。 次に、そのレコードのlevelプロパティとpushLevelとが比較されます。 指定されたレベルがpushLevelと等しいかそれよりも大きい場合、pushを呼び出すことで、バッファ内のすべてのレコードがターゲット出力Handlerに書き込まれます。
- 
pushpublic void push()任意のバッファ処理された出力をターゲットHandlerにプッシュします。バッファがクリアされます。 
- 
flushpublic void flush()ターゲットHandlerをフラッシュします。MemoryHandlerバッファの現在の内容は書き出されないことに注意してください。 書き出すにはpushが必要になります。
- 
closepublic void close() throws SecurityExceptionHandlerを閉じて、関連するすべてのリソースを解放します。 これは、ターゲットHandlerも閉じます。- 定義:
- close、クラス:- Handler
- 例外:
- SecurityException- セキュリティ・マネージャが存在する場合で、呼出し元が- LoggingPermission("control")を持っていない場合。
 
- 
setPushLevelpublic void setPushLevel(Level newLevel) throws SecurityExceptionpushLevelを設定します。LogRecordが内部バッファにコピーされると、そのレベルがpushLevelと等しいかそれよりも大きい場合、pushが呼び出されます。- パラメータ:
- newLevel-- pushLevelの新しい値
- 例外:
- SecurityException- セキュリティ・マネージャが存在する場合で、呼出し元が- LoggingPermission("control")を持っていない場合。
 
- 
getPushLevelpublic Level getPushLevel()pushLevelを取得します。- 戻り値:
- pushLevelの値
 
- 
isLoggablepublic boolean isLoggable(LogRecord record)このHandlerが、指定されたLogRecordを内部バッファに実際にロギングするかどうかを調べます。このメソッドは、 LogRecordのレベルが適切かどうか、およびそのレコードが任意のFilterを満足するかどうかをチェックします。 ただし、これは、このLogRecordによってバッファの内容が「プッシュ」されるかどうかはチェックしません。LogRecordがnullの場合、これはfalseを返します。- オーバーライド:
- isLoggable、クラス:- Handler
- パラメータ:
- record-- LogRecord(nullの場合がある)。
- 戻り値:
- LogRecordがログをとられる場合はtrue。
 
 
-