【发布时间】:2014-07-29 19:52:41
【问题描述】:
似乎 Django 记录器默认将 stderr 用于 所有 记录级别。
例如,当日志记录设置为:
'version': 1,
'disable_existing_loggers': True,
'formatters': {
'default': {
'format': "%(asctime)s:%(name)s:%(levelname)s:%(message)s"
},
},
'handlers': {
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'default',
}
},
'loggers': {
'': {
'handlers': ['console'],
'level': 'DEBUG',
'propagate': True,
},
'django': {
'handlers': ['console'],
'level': 'WARNING',
'propagate': False,
},
'appname': {
'handlers': ['console'],
'level': 'WARNING',
'propagate': False,
},
当我将处理程序更改为:
'handlers': {
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'default',
'stream': sys.stdout #Notice the change
}
},
然后所有输出都在标准输出中。
但我需要正确行为:记录信息、调试、警告stdout(警告可以是任何一种方式,并不在意)和异常、错误,对stderr很重要
我在这里缺少什么? (一些明显的设置?每个人都知道吗?)感谢您的帮助!
【问题讨论】: