OpenERP日志是UTC格式的——如何将它们与服务器放在同一时区



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

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

这是强制OpenERP服务器进入UTC时区的决定的副作用。有一份针对7.0源的错误报告,其中包含一个补丁,可以将日志恢复到正确的时区。

对于好奇的人来说,修复的核心是用一个足够智能的功能来替换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)

相关内容

最新更新