如何在Python日志上设置GMTUTC的时间戳?

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

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

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

python logging timezone utc
5个回答
59
投票
logging.Formatter.converter = time.gmtime

的docstring中记录的。logging.Formatter.formatTime)


6
投票

只是设置 logging.Formatter.converter = time.gmtime 在Python 2.5中对我来说是无效的。

所以我创建了一个设置了它的子类,并用它来代替logging.Formatter。

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

1
投票

下面是代码示例:

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")

输出:

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

1
投票

来自于python 3的docs:

import time

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

https:/docs.python.org3howtologging-cookbook.html#formatting-times-using-utc-gmt-via-configuration。


-2
投票

这两个答案我都有问题。所以我就把整个脚本的全局时区改了。

os.environ['TZ'] = 'Europe/London'
time.tzset()
© www.soinside.com 2019 - 2024. All rights reserved.