私はフレーズ!Silent
を使用して、ログレコードが保存される場所を決定します。
ログレコードメッセージに文字列の先頭に!Silent
が含まれていると、私のFilter
サブクラスはこのメッセージをStreamHandler
で拒否します。しかし、メッセージはFileHandler
やMemoryHandler
のように他のハンドラに渡され、!Silent
というフレーズで渡されます。Pythonロギング - フォーマッタをグローバルに適用する
文字列の先頭に白い文字を含むこのフレーズを削除するために単純なFormatter
サブクラスを作成しましたが、このフォーマッタをハンドラに適用する際に問題があります。
私のアプリケーションの多くの場所で、ルートロガーハンドラを作成、追加、削除します。これらのハンドラのそれぞれは私のFormatter
サブクラスを持っているはずですが、それぞれのハンドラに手動で追加するのは少し不快です。
Formatterクラスをルートロガーにグローバルに適用する方法や、root loggerに追加する前にルートログャーaddHandler
のメソッドを上書きしてハンドラーに追加する方法を探しています。存在する場合、またはより単純な方法。