我有一个Django项目,它具有以下功能,我想在其中触发记录器:
def remove_email_from_list(list_id, email_address):
subscriber_hash = hashlib.md5(email_clean)
url = '%s/lists/%s/members/%s' % (settings.API_URL, list_id, subscriber_hash.hexdigest())
r = requests.delete(url, auth=HTTPBasicAuth('user', settings.API_KEY),)
if r.status_code != 204:
logging.critical("Executed mailchimp api call, wrong status code. Message body = " + r.text)
return r
但是,我尝试了所有这些记录器来捕获此错误并发送电子邮件,但不知何故记录器未被触发。你们知道我做错了吗?
'loggers': {
'django': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': True
},
'django.request': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': True
},
'project_name.logging': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': True,
},
'django.logging': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': True,
},
答案 0 :(得分:3)
我想如果你直接拨打logging.critical
,这是通过默认记录器完成的。
首先使用(在py文件头部的某处)创建一个命名的记录器:
logger = logging.getLogger(__name__)
然后致电
logger.critical(...)
然后应该使用记录器和您所在文件的包名称