Python记录器以IS8601格式输出日期
有没有办法使Python记录器输出日期为ISO8601格式 我的记录器是这样设置的Python记录器以IS8601格式输出日期,python,python-2.7,iso8601,Python,Python 2.7,Iso8601,有没有办法使Python记录器输出日期为ISO8601格式 我的记录器是这样设置的 logging.basicConfig( format="%(message)s - %(asctime)s) 从Python文档(位于此处:)可以看到以下内容: 日期/时间显示的默认格式(如上所示)为ISO8601。如果 您需要更多地控制日期/时间的格式,请提供 datefmt参数到basicConfig,如本例所示: 唯一的问题是日期输出不是ISO8601格式。上述格式化程序输出的日期为:
logging.basicConfig(
format="%(message)s - %(asctime)s)
从Python文档(位于此处:)可以看到以下内容:
日期/时间显示的默认格式(如上所示)为ISO8601。如果
您需要更多地控制日期/时间的格式,请提供
datefmt参数到basicConfig,如本例所示:
唯一的问题是日期输出不是ISO8601格式。上述格式化程序输出的日期为:
2018-06-15 11:07:41454
这不是此处定义的ISO8601格式:
以正确的格式获取日期的最简单方法是什么?这可以开箱即用吗?或者我需要导入一个包来完成吗
我尝试添加一个日期格式化程序,例如
datefmt=“%Y-%m-%dT%H:%m:%S.%f%Z”
,但一些格式化字符未被识别,即%f
和%Z
给出了时区的文本描述,而不是数字偏移量。这在大多数情况下对我有效:
logging.basicConfig(
format="%(asctime)s %(message)s",
datefmt="%Y-%m-%dT%H:%M:%S%z"
)
输出如下所示:
2019-11-09T01:18:13-0800此处记录了一些内容
使用Python3.8进行测试,不确定较旧的版本我认为您可以基于这个答案“一些格式字符未被识别。”-哪个?示例更新。我在那里有%f,但未被识别。并且%Z给出的是文本区域描述,而不是数字偏移量。如何将毫秒部分添加到时间戳,即“%f”?当我尝试时,日志记录无法识别%f格式化程序。在毫秒内,您可以使用
datefmt
和default\u msec\u格式
。但是,我认为最好将loggin.formatter子类化。请参阅