ログに含まれる情報を解読しようとしています (ログの設定はデフォルトのフォーマッタを使用しています)。ドキュメントには次のように記載されています。
レコードのフォーマットを行います - フォーマッタが設定されている場合は、それを使用します。それ以外の場合は、モジュールの既定のフォーマッタを使用します。
ただし、このデフォルト形式が何であるかを実際に述べているリファレンスは見つかりません。
デフォルトのフォーマットは次の場所にあります。
BASIC_FORMAT = "%(levelname)s:%(name)s:%(message)s"
Formatコードは、それをカスタマイズする方法を教えてくれます。カスタマイズ方法の一例を次に示します。
import sys
import logging
logging.basicConfig(
level=logging.DEBUG,
format="[%(asctime)s] %(levelname)s [%(name)s.%(funcName)s:%(lineno)d] %(message)s",
datefmt="%d/%b/%Y %H:%M:%S",
stream=sys.stdout)
logging.info("HEY")
結果は次のとおりです。
[26/May/2013 06:41:40] INFO [root.<module>:1] HEY
import logging
print(logging.BASIC_FORMAT)
古いスレッドですが、これはクエリ「python logging default format」の Google 検索結果で最初に表示されるため、回答を追加する必要があると考えました。
また、自分でこれを発見するに至った経緯について質問するコメントもありました。これは当然のことです:
import logging
print(dir(logging))
BASIC_FORMAT はそこにあります。実際、私の場合、結果の最初のエントリです。
デフォルトは%(levelname)s:%(name)s:%(message)s
import logging
logging.error("Some error")
print "fmt: " , logging.root.handlers[0].formatter._fmt
# ERROR:root:Some error
# fmt: %(levelname)s:%(name)s:%(message)s