2010-06-09 30 views
0

我的系统在Linux中设置为EDT,我可以使用datetime.now()在Python中进行确认。然而,记录器提前4小时输出。这可能是什么原因?Python日志记录输出时间比系统提前4小时

编辑:日志记录配置是这样的:

logging.basicConfig(level=logging.DEBUG) 
lf = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s") 

mylogger = logging.getLogger('mylogger') 
mylogger .setLevel(logging.DEBUG) 

lsh = logging.StreamHandler() 
lsh.setLevel(logging.DEBUG) 
lsh.setFormatter(lf) 
mylogger.addHandler(lsh) 

回答

1

你记录仪使用UTC时间。如果你向我们展示你的代码,可以准确地说出原因。

+0

使用日志配置的更多详细信息编辑。 – Rhubarb 2010-06-09 12:02:21

+0

你需要比我所展示的更多的代码吗?这就是关于记录器的一切。 – Rhubarb 2010-06-09 12:09:02

+0

@rhubarb:你使用的是什么版本的Python? – SilentGhost 2010-06-09 12:24:26

1

我认为重要的是提前4小时是格林尼治标准时间。围绕日志记录的代码 - 它似乎使用time而不是datetime。显然,他们在计算当地时间方面有不同的工作方式。

什么以下输出?:

import time 
print time.tzname 

AFAIK,控制该偏移使用日志记录。根据documentation,你想调整你的“系统的zoneinfo数据库来指定时区规则”(man tzfile)。

+0

它表示EDT,EST。所以这似乎不是问题。 – Rhubarb 2010-06-10 00:55:01