JavaTM 2 Platform
Standard Ed. 5.0

java.util.logging
クラス MemoryHandler

java.lang.Object
  上位を拡張 java.util.logging.Handler
      上位を拡張 java.util.logging.MemoryHandler

public class MemoryHandler
extends Handler

メモリの循環バッファの要求をバッファ処理する Handler です。

通常、この Handler は着信する LogRecord をそのメモリバッファに格納するだけで、以前のレコードを破棄します。このバッファリングは、非常に安上がりでフォーマット処理のコストがかからないようにします。特定のトリガの条件の下で、MemoryHandler は現在のバッファの内容をターゲット Handler にプッシュして、通常はこのハンドラがその内容を外部に通知します。

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

構成: デフォルトで、各 MemoryHandler は次に示す LogManager 構成プロパティを使用して初期化されます。プロパティが未定義の場合 (または無効な値を持つ場合)、指定されたデフォルトの値が使用されます。デフォルト値が未定義の場合、RuntimeException がスローされます。

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

コンストラクタの概要
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 を設定します。
 
クラス java.util.logging.Handler から継承されたメソッド
getEncoding, getErrorManager, getFilter, getFormatter, getLevel, reportError, setEncoding, setErrorManager, setFilter, setFormatter, setLevel
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

MemoryHandler

public MemoryHandler()
MemoryHandler を作成して LogManager の構成プロパティに基づき構成します。


MemoryHandler

public MemoryHandler(Handler target,
                     int size,
                     Level pushLevel)
MemoryHandler を作成します。

MemoryHandler は、指定された pushLevel 引数とバッファサイズ引数が使用されないかぎり、LogManager プロパティまたはそのデフォルト値に基づいて構成されます。

パラメータ:
target - 出力を通知する Handler
size - バッファ処理するログレコードの数 (ゼロより大きくなければならない)
pushLevel - プッシュを行うメッセージレベル
例外:
IllegalArgumentException - サイズが 0 以下である
メソッドの詳細

publish

public void publish(LogRecord record)
内部バッファに LogRecord を格納します。

Filter がある場合、その isLoggable メソッドが呼び出され、指定されたログレコードがログを取ることが可能であるかどうかを調べます。可能でない場合、そのまま復帰します。可能である場合、指定されたレコードが内部循環バッファにコピーされます。次に、レコードのレベルプロパティが pushLevel と比較されます。指定されたレベルが pushLevel より大きいかまたは等しい場合、push が呼び出され、バッファ処理されたすべてのレコードをターゲット出力 Handler に書き込みます。

定義:
クラス Handler 内の publish
パラメータ:
record - ログイベントの説明。null レコードは単に無視されるだけで、通知は行われない

push

public void push()
任意のバッファ処理された出力をターゲット Handler にプッシュします。

バッファがクリアされます。


flush

public void flush()
ターゲット Handler をフラッシュします。

MemoryHandler バッファの現在の内容は書き出されないことに注意してください。書き出すには push が必要になります。

定義:
クラス Handler 内の flush

close

public void close()
           throws SecurityException
Handler を閉じて関連するすべてのリソースを解放します。これによりターゲット Handler も閉じられます。

定義:
クラス Handler 内の close
例外:
SecurityException - セキュリティマネージャが存在し、呼び出し元が LoggingPermission("control")) を持たない場合

setPushLevel

public void setPushLevel(Level newLevel)
                  throws SecurityException
pushLevel を設定します。LogRecord が内部バッファにコピーされると、そのレベルが pushLevel より大きいか等しい場合、push が呼び出されます。

パラメータ:
newLevel - pushLevel の新しい値
例外:
SecurityException - セキュリティマネージャが存在し、呼び出し元が LoggingPermission("control")) を持たない場合

getPushLevel

public Level getPushLevel()
pushLevel を返します。

戻り値:
pushLevel の値

isLoggable

public boolean isLoggable(LogRecord record)
この Handler が、指定された LogRecord を内部バッファに実際にロギングするかどうかを調べます。

このメソッドは LogRecord が適切なレベルを持っているかどうか、およびすべての Filter を満たしているかどうかを調べます。ただし、LogRecord によりバッファの内容が「プッシュ」されるかは調べません。LogRecord が Null の場合、false を返します。

オーバーライド:
クラス Handler 内の isLoggable
パラメータ:
record - LogRecord
戻り値:
LogRecord がログをとられる場合は true

JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。