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

问题描述 投票:5回答:1

有没有一种方法可以使Python记录器以ISO8601格式输出日期。

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

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

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

日期/时间显示的默认格式(如上所示)为ISO8601。如果您需要更好地控制日期/时间的格式,请提供datefmt参数为basicConfig,如本例所示:

唯一的问题是日期输出不是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给出了时区的文本描述,而不是数字偏移量。

python python-2.7 iso8601
1个回答
2
投票

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

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,不确定较旧的版本

© www.soinside.com 2019 - 2024. All rights reserved.