我有一个使用Python日志记录模块进行日志记录的Jython脚本。在一台机器上,脚本记录良好,另一台记录的时间则转移到未来五个小时。据推测,这与格林威治标准时间-5时的机器有关。你认为会导致这个问题?Jython日志记录时间错误
下面是如何创建的日志对象:
log = logging.getLogger("my_log")
log.setLevel(logging.DEBUG)
handler = logging.handlers.RotatingFileHandler(
log_file,
maxBytes=log_size,
backupCount=logs_count)
log_format = logging.Formatter("%(asctime)s:%(levelname)s:%(message)s")
handler.setFormatter(log_format)
handler.setLevel(logging.DEBUG)
log.addHandler(handler)
我没看log_format.converter
功能。我确实确定了在有问题的机器上正确设置时间。而且我确信Python会在Python shell中打印正确的时间。
编辑:如果我看time.localtime()
从Python的外壳(2.4.3),然后我得到正确的本地时间值的元组。如果我从Jython脚本(2.5.2RC1)中查看time.localtime()
,那么我可以看到GMT时间。
记录正确的机器是否使用GMT? – Velociraptors 2010-12-16 17:24:56
是的,它的确如此:它是一台Linux机器,Unix机器在内部使用GMT,然后进行数学计算。另一台机器......我不确定。我的意思是我知道它是CentOS第5版(Final),从/ etc/issues来看,但我认为它是虚拟化的。在两台机器上,当我从bash运行'date'时,我得到正确的时间。 – wilhelmtell 2010-12-16 17:32:00
我也尝试明确设置'log_format.converter = time.localtime'无济于事。 – wilhelmtell 2010-12-16 17:59:07