有没有办法让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
给出了时区的文字说明,而不是数字偏移量。
答案 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,不确定较旧的版本