django:在更改TIME_ZONE设置时保持UTC时间记录

时间:2014-10-18 02:36:42

标签: python django

我在django项目的settings.py文件中设置了时区:

TIME_ZONE = 'US/Eastern'

现在我的日志包含美国/东部时间。

我想在我的日志中保留UTC时间。这可能吗?

1 个答案:

答案 0 :(得分:9)

Django使用Python的日志记录工具,因此不应该有Django特有的东西。

根据the logging documentation,设置logging.Formatter.converter = time.gmtime应该使所有日志以UTC格式输出。

或者,您可以使自己的Formatter类使用UTC:

class UtcFormatter(logging.Formatter): 
    converter = time.gmtime

然后使用dictconfig中的()密钥(记录为here)对其进行配置:

LOGGING = {
    'formatters': {
        'utc': { 
            '()': 'my.package.UtcFormatter',
            'format': '...',
            'datefmt': '...',
        }
    }
}