pythonのログ出力をロガーツリーに対応するツリー形式にしたいと考えています。例を見てください。ログメッセージをツリー形式でフォーマットする
私たちは、コードを持っているとしましょう:
import logging
logger_a = logging.getLogger("a")
logger_a_b = logging.getLogger("a.b")
logger_a_b_c = logging.getLogger("a.b.c")
# ...
logger_a.debug("One")
logger_a_b.warning("two")
logger_a_b.warning("three")
logger_a_b_c.critical("Four")
logger_a_b.warning("Five")
出力のようなものでなければなりません:
<--"a"
| DEBUG: One
|
o<--"a.b"
| | WARNING: Two
| | WARNING: Three
| |
| o<--"a.b.c"
| | CRITICAL: Four
| |
| | WARNING: Five
私は手でログのそれぞれについて、フォーマッタを書くことができ、それは解決しませんo < - "ab"のようなものを挿入する問題と私は構造を記録することによって自動的にオフセットを計算することを好むでしょう。
logging treeというモジュールがあります。ロギングレイアウトを出力します。私が望むのは、ログメッセージをほぼ同じ方法で印刷することです。
ライブラリを知っていますか、それを簡単に行う方法はありますか?
私はあなた自身のログハンドラを書く必要があると思います。組み込みの 'logging.StreamHandler'を継承しているかもしれません。 –
標準出力をこのツリーに変換するのは難しくありません。モジュール名を取得し、ドットで区切り、メッセージの前にツリーを描きます。あなたはすでにすべての情報を持っているように見えますが、ビュー変換が必要です。 – viraptor
おそらくそれで十分でしょう – MajesticRa