我正在尝试破译我的日志中包含的信息(日志设置使用默认格式化程序)。documentation声明:
对记录进行格式化-如果设置了格式化程序,请使用它。否则,请使用模块的默认格式化程序。
但是,我找不到任何说明这个默认格式是什么的参考。
发布于 2013-05-26 21:42:45
默认格式位于here,即:
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
发布于 2017-04-07 01:32:12
import logging
print(logging.BASIC_FORMAT)
旧线程,但这首先出现在我的google搜索结果中,查询"python logging default format",所以我想我应该加上我的答案。
还有一些评论问,一个人是如何自己发现这一点的。这是一件很自然的事情:
import logging
print(dir(logging))
BASIC_FORMAT在其中,实际上在我的例子中,它是结果中的第一个条目。
发布于 2013-05-26 16:52:39
它在logging/__init__.py
的源代码中
_defaultFormatter = Formatter()
默认格式字符串是%(message)s
,它也在源代码中:
if fmt:
self._fmt = fmt
else:
self._fmt = "%(message)s"
https://stackoverflow.com/questions/16757578
复制相似问题