1. ホーム
  2. python

[解決済み] python.loggingモジュールを使って既存のロガーをすべてリストアップする方法

2023-01-08 02:19:26

質問

Pythonで、定義されたすべてのロガーのリストを取得する方法はありますか?

つまり、次のようなものが存在するのでしょうか? logging.getAllLoggers() のリストを返すような Logger オブジェクトのリストを返すのでしょうか?

python.loggingのドキュメントを探しましたが、そのようなメソッドを見つけることができませんでした。

よろしくお願いします。

どのように解決するのですか?

ロガーは階層的に logging.Manager インスタンスに格納されます。を問い合わせることができます。 manager を問い合わせることができます。

import logging

loggers = [logging.getLogger(name) for name in logging.root.manager.loggerDict]

呼び出し getLogger(name) によって保持されているプレースホルダロガーを確実に loggerDict が保持するプレースホルダロガーがリストに追加されたときに完全に初期化されることを保証します。