Если я регистрируюсь с logging
, я могу заставить метку времени быть в UT C время, установив
logging.Formatter.converter = time.gmtime
следующим образом:
import sys
import time
import logging
handler = logging.StreamHandler(sys.stdout)
out_fmt = '[%(asctime)s.%(msecs)03dZ] [%(levelname)s] %(message)s'
dt_fmt = '%Y-%m-%d %H:%M:%S'
logging.Formatter.converter = time.gmtime
formatter = logging.Formatter(out_fmt, dt_fmt)
handler.setFormatter(formatter)
root = logging.getLogger()
root.setLevel(10)
root.addHandler(handler)
logging.log(logging.INFO, 'Start logging')
Поскольку мое приложение будет использовать Twisted, я хочу использовать twisted.logger
вместо для регистрации. И действительно, это намного проще:
import sys
from twisted.logger import Logger, textFileLogObserver
log = Logger(observer=textFileLogObserver(sys.stdout, '%Y-%m-%d %H:%M:%S.%fZ'))
log.info('Start logging')
Проблема в том, что временная метка находится в местном времени, а не в UT C времени. Есть ли способ заставить Twisted logger использовать время UT C?