ファイルを読み込んでfileConfigオプションを使用して、main.pyにPythonロギングを設定しています。私は、テストとライブロギングの設定を切り替えることができるようにしたいので、まず別の設定ファイルを読み込み、そこからロギング設定ファイルのパスを抽出します。ロギング設定によるインポート時ロガーのネーミングと互換性がない
私がmain.pyからインポートした他のファイルは、log = getLogger(__name__)
で自分のロガーを取得していますが、これはインポート時に発生します。新しい設定がロードされると、これらのリンクが壊れてしまい、これらのモジュールは予期したとおりに動作しなくなります。
多くのリファクタリングをしなくても、これらのモジュールのインポートを簡単に遅延させることはできません。後でログ設定でロードしながらモジュール名でロガーを設定する方法はありますか?
設定ファイルを読み込む前に、すでに初期化されているロガーの 'handlers'属性を調べてみましょう(空リストの割り当てなど)。 – jcollado