あなたが望むのはログのフィルタリングだと思うので、私の答えは、ログのフィルタリングを簡単に実現する方法についてです。
Python のログ パッケージは既にこれを行っています。ログ フィルタリングを行う方法はたくさんあります。
2 つの基本的な方法は次のとおりです。
- ログ レベルのフィルタリング
- ロガー名のフィルタリング
どちらもロギングの構成を使用するため、簡単に構成できます。
例えば:
import logging
logging.basicConfig() # easily setup a StreamHandler output
logging.getLogger("realm1").setLevel(logging.WARNING)
logging.getLogger("realm2").setLevel(logging.INFO)
def test():
r1logger = logging.getLogger("realm1")
r2logger = logging.getLogger("realm2")
r1logger.info('r1 info') # won't print
r2logger.info('r2 info') # will print
if __name__ == '__main__':
test()
そのため、ロギング ポリシーを実行時に動的にローカルで変更する必要がない限り、注意深いロギング設定でデフォルト ロガーを使用するだけで十分です。