16

Python ロギングのチュートリアルでは、フォーマットの新しい方法はチュートリアルの範囲を超えていると述べていますが、それについてどこで学ぶべきかについては触れていません。

、など.format()のログ呼び出しでスタイル メッセージの書式設定を使用できるようにする例やドキュメントへのリンクをいただければ幸いです。debug()info()

4

1 に答える 1

13

最近、私もそれを探していました。ここで SO で解決策を指摘されたと思いますが、手元にあるのは最終的な URL だけです。これが私がすることです:

# http://plumberjack.blogspot.de/2010/10/supporting-alternative-formatting.html
class BraceMessage(object):
    def __init__(self, fmt, *args, **kwargs):
        self.fmt = fmt
        self.args = args
        self.kwargs = kwargs

    def __str__(self):
        return self.fmt.format(*self.args, **self.kwargs)

_F = BraceMessage

次のように使用できます。

logger.debug(_F("foo {0} {quux}", bar, quux=baz))

フォーマットはメッセージが評価される瞬間にのみ行われるため、ログ レベルが無効になっていても多くのパフォーマンスが低下することはありません。上記のスニペットの作成者は、これ (およびその他のユーティリティ) をパッケージとして利用できるようにしました: logutils.

于 2012-11-21T19:41:22.690 に答える