【发布时间】:2010-12-16 17:05:07
【问题描述】:
我有一个使用 Python 日志记录模块进行日志记录的 Jython 脚本。在一台机器上,脚本记录正常,而在另一台机器上,记录的时间被转移到未来五小时。大概这与机器处于 GMT-5 状态有关。您认为什么会导致此问题?
以下是我创建日志对象的方法:
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 中打印正确的时间。
编辑:如果我从 Python shell (2.4.3) 查看time.localtime(),那么我会得到一个具有正确本地时间值的元组。如果我从 Jython 脚本 (2.5.2RC1) 中查看 time.localtime(),那么我会看到 GMT 时间。
【问题讨论】:
-
记录日志的机器是否正确使用GMT?
-
是的,确实如此:它是一台 Linux 机器,而 Unix 机器在内部使用 GMT,然后它们会进行数学运算。另一台机器......我不确定。我的意思是我知道它是 CentOS 第 5 版(最终版),从 /etc/issues 来看,但我认为它是虚拟化的。在两台机器上,当我从 bash 运行
date时,我得到了正确的时间。 -
我也尝试过明确设置
log_format.converter=time.localtime无济于事。
标签: python logging timestamp jython