Pythonのロギングで改行を挿入する方法は?
import logging
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(levelname)s %(message)s', datefmt='%H:%M:%S')
logging.info('hello')
logging.warning('\n new hello')
11:15:01 INFO こんにちは。 11:16:49警告 新しいハロー
ログが混み合っているので、asctime
とlevelname
の前に明示的に改行を挿入したいのです。これは format
を変更することなく可能でしょうか?
logging` モジュールを調べ、少しググってみましたが、実行可能な方法は見つかりませんでした。
28
3
最初の方法は非常に簡単ですが、出力はあまりきれいではありません。2番目の方法は、あなたが望む正確な出力を生成しますが、少し複雑です。
方法1
空行を生成するには、空文字列を改行でログするだけです。
出力は空の情報行を持つことになりますが、これはあまりきれいではありません。
方法2
このメソッドでは、2種類のハンドラを作成しました。一番よく使うのは
console_handler
です。改行が必要なときは、2つ目のハンドラであるblank_handler
に切り替えます。出力されるのは、見たいものだけです。
議論
logging
を検索して、logger
に置き換えることで、コードを変更しなければならないことです。このとき、logging.DEBUG
のようなテキストはそのままにして、関連する部分のみを置き換えるように注意しなければなりません。異なる時間に異なるフォーマット文字列を使用する、カスタム
Formatter
を使用します。これはbasicConfig()
を使用しては行えません。あるいは、
super
メソッドを呼び出してから、文字列を変更して改行を挿入してから返すこともできます (例えば、行の長さに依存している場合など)。このような感じです。logging.basicConfig]1 に
asctime
とlevelname
の間にn
を追加してください。