我的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)