Python日志记录:如何将时间设置为GMT

问题描述:

是否有可能以及如何将日志记录时区设置为GMT?Python日志记录:如何将时间设置为GMT

(即,在格式%(asctime)s参数)

logging.Formatter.converter = time.gmtime 

(在logging.Formatter.formatTime文档字符串记录)

+2

而且我现在也更新了官方的HTML文档 - 应该很快出现3.2和3.3,几天后出现2.7。 – 2011-06-12 10:52:23

+2

描述[这里](http://docs.python.org/2/library/logging.html#logging.Formatter)。如果要将格式化程序附加到处理程序,首先需要使用** formatter = logging.Formatter(fmt)**创建格式化程序,然后执行** formatter.converter = time.gmtime **,然后执行** myHandler。 setFormatter(格式化程序)** – 2014-03-15 04:46:24

+1

@VinaySajip如何设置它在日志dictConfig?我使用Django使用logging.dictConfig来配置日志记录部分。谢谢 – Michael 2014-10-18 20:02:37

只设置logging.Formatter.converter = time.gmtime是无效的我在Python 2.5。

所以我创建了一个子类时将其设置,并使用到位logging.Formatter的:

class UTCFormatter(logging.Formatter): 
    converter = time.gmtime 
+0

(它在2.5中对我有效,以防万一。) – 2012-07-03 12:13:49

+0

在Python 2.7中为我工作。因为它有点棘手,所以添加了一个建议的编辑,显示了实例化的YAML语法。 (不需要'__init __()'方法,因为我建议编辑第一个编辑。) – evadeflow 2015-02-09 15:30:30

我已经受够了这两种回答的问题。所以我只是改变了整个脚本的全球时区:

os.environ['TZ'] = 'Europe/London' 
time.tzset() 
+10

请小心,因为伦敦在夏季不是格林威治标准时间。 – 2012-08-15 21:47:49

+0

我发现这是在Linux上使用Python 2.7的工作原理。值得使用Linux tzselect命令进行检查,无论您指定什么是系统上的有效时区,并使用'date'命令在Python之外进行测试。 Django似乎可以处理它的设置,但是在从非Django Python脚本进行Python日志记录时,我遇到了错误的时区。 – RichVel 2013-01-01 17:38:44

+1

这是错误的!在伦敦的时区不能保证是永久的UTC。 – Federico 2016-01-19 18:15:22