ロギング用のカスタム属性(呼び出し元のクラス名、モジュール名など)を作成しようとしていたが、プロセスで作成されたLogRecordインスタンスに必要な属性。コード利回りのPythonロギングモジュール:カスタムロガー
import logging
class MyLogger(logging.getLoggerClass()):
value = None
logging.setLoggerClass(MyLogger)
loggers = [
logging.getLogger(),
logging.getLogger(""),
logging.getLogger("Name")
]
for logger in loggers:
print(isinstance(logger, MyLogger), hasattr(logger, "value"))
この一見正しい作品:
False False
False False
True True
バグや機能テストのビットの後、私はこれで終わりましたか?
あなたのコメントをありがとう、私は質問を編集しました。 しかし、私はこの行動が起こると予想されるものではないと思います。 – Pastafarianist
なぜあなたは何が起こると思いますか? *正確に*名前が指定されていないときにドキュメントが何を言うのか。 –
これはドキュメントに記載されているものですが、直感的ではありません。ロガーのクラスを設定すると、私は_all_ロガーがそのクラスを持つことを期待します。ルートを含むものと、既にインスタンス化されているものは除きます。 – Pastafarianist