我的系统在Linux中设置为EDT,我可以使用datetime.now()在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)
答案 0 :(得分:1)
您的记录器正在使用UTC时间。如果您向我们展示您的代码,就可以确切地说出原因。
答案 1 :(得分:1)
我认为格林威治标准时间提前4小时对您来说意义重大。浏览日志记录的代码 - 它似乎使用time
而不是datetime
。显然,他们在确定当地时间方面的工作方式不同。
以下输出是什么?:
import time
print time.tzname
AFAIK,用于控制记录使用的偏移量。根据{{3}},您想调整“系统的zoneinfo数据库以指定时区规则”(man tzfile
)。