所以我的 Django 项目中有两个记录器。一种用于身份验证失败,一种包括那些但还包括编辑某些内容时的消息(基本上我有一个记录器命令的所有内容)。但是,在我想同时使用两个记录器的模块中,我似乎有点问题。我的两个记录器当前定义如下:
'': {
'handlers': ['file'],
'level': 'INFO',
'propagate': True,
},
'auth': {
'handlers': ['file_auth'],
'level': 'CRITICAL',
'propagate': True,
}
我的处理程序是:
'file': {
'level': 'INFO',
'class': 'logging.FileHandler',
'filename': '/home/debug.log',
'formatter': 'simple',
},
'file_auth': {
'level': 'CRITICAL',
'class': 'logging.FileHandler',
'filename': '/home/debug2.log',
'formatter': 'verbose',
},
在我的 Django 视图的顶部,我有
import logging
logger = logging.getLogger('')
logger = logging.getLogger('auth')
然后在一个视图中,我有一个 logger.info(message)。如果我将其更改为 logger.critical(message),则该消息会出现在两个日志文件中,但如果它仍然是 logger.info,则什么也不会发生。
(可能是无用的信息......在 settings.py 中我的 LOGGING 部分的开头,我有:
'version': 1,
'disable_existing_loggers': False,
不确定它们是否有任何相关性。但以前我一直在努力让错误出现在两个文件中,直到我改变了引入它们的顺序,这神奇地改变了东西——我真的不明白为什么这会有所作为)
如果有人能帮助我,我将不胜感激......可能真的很简单,但我必须承认我并不真正理解它是如何工作的......