私は、ログを記録するためにロギング(インポートロギング)を使用しています。フィルタを使用したログ
1つのモジュール内で、デバッグレベル(my_logger.debug( 'msg'))でメッセージをロギングしています。
これらのデバッグメッセージの一部は、function_a()およびfunction_b()のものです。 私はaかbから来ているかどうかに基づいてロギングを有効/無効にしたいと思っています。
私は、Loggingのフィルタリングメカニズムを使用する必要があると推測しています。
誰かが、私が欲しいことをするために、以下のコードをどのように装備する必要があるか教えてください。ありがとう。
import logging
logger= logging.getLogger("module_name")
def function_a(...):
logger.debug("a message")
def function_b(...):
logger.debug("another message")
if __name__ == "__main__":
logging.basicConfig(stream=sys.stderr, level=logging.DEBUG)
#don't want function_a()'s noise -> ....
#somehow filter-out function_a's logging
function_a()
#don't want function_b()'s noise -> ....
#somehow filter-out function_b's logging
function_b()
私はより多くのモジュールとモジュールあたりよりのfuncsにこの簡単な例をスケーリングした場合、私はロガーの多くを心配するだろう。
モジュールあたり1ロガーに抑えることはできますか?ログメッセージは構造化されていることに注意してください。つまり、関数が何らかの解析作業を行っている場合、それらはすべて接頭辞logger.debug( "parsing:xxx")を含んでいます。メッセージを出すモジュール/機能に関係なく、すべての「解析」メッセージをオフにします。
ハンドラにフィルタを追加する必要がありました。 –