JavaTM Platform
Standard Ed. 6

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 メソッドが呼び出され、指定されたログレコードがロギング可能かどうかがチェックされます。可能でない場合は戻ります。それ以外の場合、指定されたレコードが内部の循環バッファーにコピーされます。次に、そのレコードの level プロパティーと 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 Platform
Standard Ed. 6

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

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