我设置了日志记录,它运行良好。我现在要做的是记录一个名为“我的应用程序”的特定应用程序的所有调试信息以及其他日志,我不知道如何实现这一点。
现在正在设置工作:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
#
'formatters': {
'default': {
'format': '\n%(levelname)s - %(asctime)s\n%(message)s\n'
},
},
#
'handlers': {
#
'mail_admins': {
'level': 'ERROR',
'class': 'django.utils.log.AdminEmailHandler',
'include_html': True,
},
#
'debug_log': {
'level': 'DEBUG',
'class': 'logging.handlers.RotatingFileHandler',
'filename': '/var/log/django/debug.log',
'maxBytes': 1024*1024*5,
'backupCount': 5,
'formatter': 'default',
},
#
'error_log': {
'level': 'ERROR',
'class': 'logging.handlers.RotatingFileHandler',
'filename': '/var/log/django/error.log',
'maxBytes': 1024*1024*5,
'backupCount': 5,
'formatter': 'default',
},
},
#
'loggers': {
'': {
'handlers': ['mail_admins', 'error_log',],
'level': 'INFO',
'propagate': True,
},
'django': {
'handlers': ['debug_log',],
'level': 'DEBUG',
'propagate': True,
},
}
}
我想设置DEBUG日志记录,捕获一个特定应用程序的所有内容。我将以下处理程序添加到LOGGING:
'app_log': {
'level': 'DEBUG',
'class': 'logging.handlers.RotatingFileHandler',
'filename': '/var/log/django/app.log',
'maxBytes': 1024*1024*5,
'backupCount': 5,
'formatter': 'default',
},
以下记录器:
'my_app': {
'handlers': ['app_log',],
'level': 'DEBUG',
'propagate': True,
},
将以下内容添加到my_app.views:
import logging
logger = logging.getLogger(__name__)
这就是我不确定接下来需要做什么的地方。我可以在某个视图中添加如下内容
...
if blahblahblah:
logger.debug('My Message Here')
...
事情很有效。但是,我真正想要的是整个应用程序的所有调试信息,而不仅仅是“我的消息在这里”。我想要所有的查询信息等...即:与标准调试日志记录相同的信息,但仅适用于那个应用程序。
我如何实现这一目标?
答案 0 :(得分:1)
您尚未明确启用SQL query logging,但我不确定是否可以在应用范围内启用它。 AFAIK只能为整个项目启用或禁用它。
如果您想在应用级别或视图级别执行此操作,可以尝试以下操作:
from django.db import connection
logger.debug(connection.queries)
将此代码放在要查看sql日志的每个视图的末尾。