14.5.5 Handler オブジェクト

ハンドラは以下の属性とメソッドを持ちます。Handler は直接インスタンス化されることはありません; このクラスは より便利なサブクラスの基底クラスとして働きます。しかしながら、 サブクラスにおける __init__() メソッドでは、 Handler.__init__() を呼び出す必要があります。

__init__( level=NOTSET)
レベルを設定して、Handler インスタンスを初期化します。 空のリストを使ってフィルタを設定し、I/O 機構へのアクセスを 直列化するために (createLock() を使って) ロックを生成します。

createLock( )
スレッド安全でない根底の I/O 機能に対するアクセスを直列化 するために用いられるスレッドロック (thread lock) を初期化します。

acquire( )
createLock() で生成されたスレッドロックを獲得します。

release( )
acquire() で獲得したスレッドロックを解放します。

setLevel( lvl)
このハンドラに対する閾値を lvl に設定します。 ログ記録しようとするメッセージで、lvl よりも深刻でないものは 無視されます。ハンドラが生成された際、レベルは NOTSET (全てのメッセージが処理される) に設定されます。

setFormatter( form)
このハンドラのフォーマッタを form に設定します。

addFilter( filt)
指定されたフィルタ filt をこのハンドラに追加します。

removeFilter( filt)
指定されたフィルタ filt をこのハンドラから除去します。

filter( record)
このハンドラのフィルタをレコードに適用し、レコードが フィルタを透過して処理されることになる場合には真を返します。

flush( )
全てのログ出力がフラッシュされるようにします。このクラスの バージョンではなにも行わず、サブクラスで実装するためのものです。

close( )
ハンドラで使われている全てのリソースを始末します。このクラスの バージョンではなにも行わず、サブクラスで実装するためのものです。

handle( record)
ハンドラに追加されたフィルタの条件に応じて、指定されたログレコードを 発信します。このメソッドは I/O スレッドロックの獲得/開放を伴う実際の ログ発信をラップします。

handleError( record)
このメソッドは emit() の呼び出し中に例外に遭遇した際に ハンドラから呼び出されます。デフォルトではこのメソッドは 何も行いません。すなわち、例外は暗黙のまま無視されます。 ほとんどのログ記録システムでは、これがほぼ望ましい機能です - というのは、ほとんどのユーザはログ記録システム自体のエラーは 気にせず、むしろアプリケーションのエラーに興味があるからです。 しかしながら、望むならこのメソッドを自作のハンドラと置き換え ることはできます。record には、例外発生時に処理 されていたレコードが入ります。

format( record)
レコードに対する書式化を行います - フォーマッタ が設定されていれば、それを使います。そうでない場合、 モジュールにデフォルト指定されたフォーマッタを使います。

emit( record)
指定されたログ記録レコードを実際にログ記録する際の全ての処理 を行います。このメソッドのこのクラスのバージョンはサブクラスで 実装するためのものなので、NotImplementedError を送出します。



Subsections
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。