如何在Python日志记录中的GMT / UTC上设置时间戳?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Python日志记录中的GMT / UTC上设置时间戳?相关的知识,希望对你有一定的参考价值。

是否可以以及如何将日志记录时区设置为GMT?

(即%(asctime)s参数的格式)

答案
logging.Formatter.converter = time.gmtime

(记录在logging.Formatter.formatTime的文档字符串中]

另一答案

仅在Python 2.5中设置logging.Formatter.formatTime对我无效。

所以我创建了一个带有它的子类,并用它代替了logging.Formatter:

logging.Formatter.converter = time.gmtime
另一答案

这里是代码示例:

class UTCFormatter(logging.Formatter):
    converter = time.gmtime

输出:

import logging, logging.handlers
import time

logit = logging.getLogger('logit')
handler = logging.handlers.RotatingFileHandler("file.log", maxBytes=20000, backupCount=5)
handler.setLevel(logging.INFO)
formatter = logging.Formatter('%(asctime)s %(levelname)8s: %(message)s')
handler.setFormatter(formatter)
logging.Formatter.converter = time.gmtime
logit.addHandler(handler)

logit.info("test log message")
另一答案

来自python 3 docs:

2019-11-14 16:34:22,967     INFO: test log message

import time class UTCFormatter(logging.Formatter): converter = time.gmtime

另一答案

我在这两个答案上都遇到了问题。所以我只是更改了整个脚本的全局时区:

https://docs.python.org/3/howto/logging-cookbook.html#formatting-times-using-utc-gmt-via-configuration

以上是关于如何在Python日志记录中的GMT / UTC上设置时间戳?的主要内容,如果未能解决你的问题,请参考以下文章

在 MySQL 中将 UTC 格式的日期时间转换为 GMT+7

在python中获取给定日期和UTC偏移量的GMT时间

如何在 Python 中获取 GMT 并将其转换为 PST

GMT 和 UTC 一样吗? [复制]

强制 Java 时区为 GMT/UTC

如何获取 ISO-8601 GMT/UTC 年周数