OpenERP日志是UTC格式 - 如何在与服务器相同的时区中获取它们?

时间:2013-12-04 17:38:57

标签: logging timezone openerp

我的OpenERP日志显示UTC时区的时间戳,即使实际服务器位于America / Los_Angeles时区。这使得将OpenERP日志与服务器上的任何其他日志进行比较是一件痛苦的事。

如何让OpenERP日志处于正确的时区?

1 个答案:

答案 0 :(得分:3)

这是决定强制OpenERP服务器进入UTC时区的副作用。对{7.0}源有一个bug report a patch,可以将日志恢复到正确的时区。

对于好奇的人来说,解决方案的核心是用一个足够智能的函数替换logging.Formatter.converter以调整回本地时区:

def adjust_logging_timezone():
    logger_tz = pytz.timezone(config['timezone'] or detect_server_timezone())
    if logger_tz.zone != 'UTC':
        def converter(secs=None):
            dt = datetime(*time.localtime(secs)[:6])
            dt = UTC.localize(dt).astimezone(logger_tz)
            return dt.timetuple()
        logging.Formatter.converter = staticmethod(converter)