我正在使用Django日志记录。以下是我目前正在调用Django日志记录的方法。
logger = logging.getLogger(__name__)
.
.
.
logger.info("Database results")
以下是来自settings.py文件的Django日志记录配置。
LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'formatters': {
'default': {
'format': '[%(asctime)s] %(levelname)s:%(message)s'
},
},
'handlers': {
'email_admins': {
'level': 'INFO',
'class': 'django.utils.log.AdminEmailHandler',
'include_html': False,
},
'admin_console': {
'level':'DEBUG',
'class':'logging.StreamHandler',
'formatter': 'default'
},
'null': {
'level':'DEBUG',
'class':'django.utils.log.NullHandler',
'formatter': 'default',
},
'file_handler': {
'level': 'DEBUG',
'formatter':'default',
'class': 'logging.handlers.TimedRotatingFileHandler',
'filename':'logs/prj_log',
'when':'midnight',
'interval':1,
},
'request_handler': {
'level':'ERROR',
'class':'logging.handlers.RotatingFileHandler',
'filename': 'logs/django_request.log',
'maxBytes': 1024*1024*5, # 5 MB
'backupCount': 5,
'formatter':'default',
},
},
'loggers': {
'': {
'handlers': ['email_admins', 'file_handler', 'admin_console'],
'level': 'DEBUG',
'propagate': True,
},
'django': {
'handlers':['null'],
'propagate': True,
'level':'INFO',
},
'django.request': {
'handlers': ['email_admins', 'request_handler'],
'level': 'ERROR',
'propagate': False,
},
}
}
我收到一封以Database results
为主题的电子邮件。如何在电子邮件正文中添加更多信息?
答案 0 :(得分:1)
django.utils.log.AdminEmailHandler仅将堆栈跟踪记录为电子邮件消息(有关详细信息,请参阅处理程序代码)。因此,如果您想在信息级别记录某些内容,则需要编写自己的处理程序来发送电子邮件。
即使使用自定义处理程序,也无法一次记录两个参数(例如主题和消息文本)。由于您可能想要记录序列化对象,因此您必须对主题进行硬编码
答案 1 :(得分:-1)
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse'
}
},
'handlers': {
'mail_admins': {
'level': 'ERROR',
'filters': ['require_debug_false'],
'class': 'django.utils.log.AdminEmailHandler'
}
},
'loggers': {
'django.request': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': True,
},
}
}