Python记录器输出日期为IS8601格式

时间:2018-06-15 10:10:50

标签: python python-2.7 iso8601

有没有办法让Python记录器输出日期为ISO8601格式。

我的记录器设置如下......

logging.basicConfig(
    format="%(message)s - %(asctime)s)

从Python文档(位于此处https://docs.python.org/2/howto/logging.html)中,您可以看到以下内容:

  

日期/时间显示的默认格式(如上所示)是ISO8601。如果   你需要更多地控制日期/时间的格式,提供一个   basicConfig的datefmt参数,如下例所示:

唯一的问题是日期输出不是ISO8601格式。上述格式化程序输出的日期为:

2018-06-15 11:07:41,454

这不是此处定义的ISO8601格式:https://en.wikipedia.org/wiki/ISO_8601

以正确的格式获取日期的最简单方法是什么?这可以开箱即用,还是我需要导入一个包呢?

我已尝试添加日期格式化程序,例如datefmt="%Y-%m-%dT%H:%M:%S.%f %Z"但有些格式字符无法识别 - 即%f%Z给出了时区的文字说明,而不是数字偏移量。

1 个答案:

答案 0 :(得分:3)

这在大多数情况下对我有用:

logging.basicConfig(
    format="%(asctime)s %(message)s",
    datefmt="%Y-%m-%dT%H:%M:%S%z"
)

输出如下:

2019-11-09T01:18:13-0800 Something logged here

使用Python 3.8,不确定较旧的版本