我的定时任务会在每天早上5点钟调一个交易,交易中日志用的logging模块,今天发现log有问题,排查如下。


  1. 查看日志的时候发现本应5点打的日志,日志时间却显示为

    2016-09-12 21:00:02,379 - INFO - novel.py[line:82] - 择天记

  2. 查了一遍代码,没有发现问题,然后发现21点和5点差了8个小时,也就是说日志打的是utc时间

  3. 网上去搜相关的信息,一个帖子说他用logging的时候,使用TimedRotatingFileHandler后会把今天的日志打到昨天的日志文件中,感觉和我的问题很类似,去看TimedRotatingFileHandler模块

  4. 查看TimedRotatingFileHandler没发现明显问题,所以把代码简化了一下,想debug看一看是哪里时间改变了

  5. 第一遍运行结果出来,fuck,结果是正确的

  6. 后来想我是在windows测试的,这个问题会不会只在linux中出现,然后把代码拷到linux下,执行,果然出了问题。

  7. 比较了windows下和linux下的logging模块代码,有一些不同,但是没有和时间相关的不同

  8. 下一步,搞个linux环境,装个IDE,去debug一下,看看是哪里出的问题