如何在更改TIME_ZONE设置时保持日志中的UTC时间?
我在我的django项目的settings.py
文件里设置了时区:
TIME_ZONE = 'US/Eastern'
现在我的日志里显示的是美国东部时间。
我想在我的日志里保持使用UTC时间,这可能吗?
1 个回答
15
Django使用的是Python自带的日志功能,所以这里没有特别针对Django的内容。
根据日志文档,设置logging.Formatter.converter = time.gmtime
可以让所有的日志输出为UTC时间。
另外,你也可以自己创建一个Formatter
类来使用UTC时间:
class UtcFormatter(logging.Formatter):
converter = time.gmtime
然后在字典配置中使用()
键来进行配置(详细说明可以在这里找到):
LOGGING = {
'formatters': {
'utc': {
'()': 'my.package.UtcFormatter',
'format': '...',
'datefmt': '...',
}
}
}