Pythonロギングフォーマッタで部分文字列フォーマットを実行する方法を探しています。フォーマッタに次のように定義しようとすると
は:私はTypeError例外を取得します
Pythonロギングフォーマッタの部分文字列フォーマット
formatter = logging.Formatter('[num-%d] %(levelname)s %(message)s' % (num,))
「をlevelname」を見つけることができませんでしたインタプリタとして妥当である「形式は、マッピングが必要です」と、 'メッセージ'。
もちろん、私は、 'levelname'と 'message'の両方を、ロギングフレームワークが処理するためにフォーマットされていないままにしておきたいと思います。
私は見ての通り、問題に対処する他の二つの方法があります:
format = '[num-' + str(num) + '] %(levelname)s %(message)s' % (num,)
format = '[num-%(num)d] %(levelname)s %(message)s' % dict(num=num, levelname='%(levelname)s', message='%(message)s')
は、しかし、私は両方のソリューションがやや醜い見つけて、私はそこに信じていますPythonで、またはPython組み込みログフレームワークで使用すると、文字列の一部だけをフォーマットするためのより良い方法でなければなりません。
すべてのアイデア?
重複:http://stackoverflow.com/questions/4928526/python-format-string – Stefano