1. ホーム
  2. python

[解決済み] logRecordのlevelnameのフォーマットを変更する

2022-02-19 03:53:40

質問

Pythonのloggingパッケージを使って、logRecoedのlevelnameのフォーマットを変更するにはどうしたらいいのでしょうか。

formatter = logging.Formatter('%(levelname)-8s %(message)s')

基本的には、任意のログ名を名前の最初の文字に置き換えたいのです。例えば、こんな感じです。

INFO -> I, 
WARNING -> W, 
ERROR -> E, 

など

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

を使用することができます。 精度 フィールドを設定します。 最大 フィールドの幅を指定します。

formatter = logging.Formatter('%(levelname).1s %(message)s')

.1 は,フィールドの幅を最大1文字に設定し,レベルを最初の文字で切り詰める。

>>> for level in ('CRITICAL', 'ERROR', 'INFO', 'WARNING', 'DEBUG'):
...     print '%(level)-.1s %(message)s' % {'level': level, 'message': 'Hello world!'}
... 
C Hello world!
E Hello world!
I Hello world!
W Hello world!
D Hello world!

をご覧ください。 文字列の書式設定操作 ドキュメンテーション :

変換 : 's'
意味 : 文字列 (任意のPythonオブジェクトに変換) str() ).
備考 : (6)

  1. [...] 精度は、使用する最大文字数を決定します。