是否可以以及如何将日志时间区设置为GMT?
(即 %(asctime)s
格式的参数)。)
logging.Formatter.converter = time.gmtime
的docstring中记录的。logging.Formatter.formatTime
)
只是设置 logging.Formatter.converter = time.gmtime
在Python 2.5中对我来说是无效的。
所以我创建了一个设置了它的子类,并用它来代替logging.Formatter。
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")
输出:
2019-11-14 16:34:22,967 INFO: test log message
来自于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。
这两个答案我都有问题。所以我就把整个脚本的全局时区改了。
os.environ['TZ'] = 'Europe/London'
time.tzset()