如何在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上设置时间戳?的主要内容,如果未能解决你的问题,请参考以下文章