次のコードでは、同じログ メッセージが 2 回出力されます。
log1 = logging.getLogger('foo')
log1.addHandler(logging.FileHandler('log.txt'))
log2 = logging.getLogger('foo.bar')
log2.addHandler(logging.FileHandler('log.txt'))
log2.warn("test message")
これは、'foo.bar' が 'foo' パスと 'foo.bar' パスの両方に一致するためであり、両方のロガーがメッセージを受け取るためであることがわかりました。私の質問は、2 つのロガーが同じログ パス内の同じファイルを指していないことを確認する以外に、この動作を防ぐ方法はありますか?