我的 Django 设置中有以下日志记录配置。
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format':
'%(levelname)s|%(asctime)s|%(name)s>> %(message)s',
},
},
'handlers': {
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'verbose',
}
},
'loggers': {
'': {
'handlers': ['console'],
'level': 'ERROR',
'propagate': True,
},
'apps': {
'handlers': ['console'],
'level': 'DEBUG',
},
}
}
使用此配置,我希望我的“应用程序”以 DEBUG 级别记录,而任何其他模块仅记录 ERROR 及以上级别。但是我看到来自其他模块的 DEBUG 消息。我该如何解决?
最佳答案
您是否在 LOGGING['loggers']
中使用空字符串键来匹配根记录器?如果是这样,您可以试试这个。
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format':
'%(levelname)s|%(asctime)s|%(name)s>> %(message)s',
},
},
'handlers': {
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'verbose',
}
},
'loggers': {
'apps': {
'handlers': ['console'],
'level': 'DEBUG',
}
},
'root': {
'handlers': ['console'],
'level': 'ERROR'
}
}
关于python - 在 python 中配置根记录器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21021704/