django logger无法输出响应内容

时间:2016-03-12 08:13:30

标签: django

我使用django 1.4.6,我想使用与django集成的记录器模块来输出响应内容,但是,我无法在日志文件中看到它。 此处显示的源样本:

import logging
logger = logging.getLogger('__file__')
...
response = redirect(url)
logger.debug(response.content)
return response

2 个答案:

答案 0 :(得分:1)

配置记录器,处理程序,过滤器和格式化程序后, 您需要按如下方式调用它:

   import logging 

    # Standard instance of a logger with __name__
    stdlogger = logging.getLogger(__name__)
    logger.debug(response.content)

    response = redirect(url)
    return response

对logging.getLogger()的调用获取(如果需要,创建)记录器的实例。记录器实例由名称标识。此名称用于标识记录器以进行配置。

按照惯例,记录器名称通常为名称

用于getLogger的Python name 语法会自动将包名称指定为记录器名称。

答案 1 :(得分:1)

请显示登录静态文件的peple配置

我的代码几乎没有变化

    logger = logging.getLogger(__name__)

在settings.py上记录配置

    LOGGING = {
        'version': 1,
        'disable_existing_loggers': False,
        'formatters': {
            'verbose': {
    'format': "[%(asctime)s] %(levelname)s %(message)s",
                'datefmt': "%d/%b/%Y %H:%M:%S"
            }
        },
        'handlers': {
            'file': {
                'level': 'DEBUG',
                'class': 'logging.FileHandler',
                'filename': '/var/log/django_practices.log',
                'formatter': 'verbose'
            },
            'console': {
                'level': 'DEBUG',
                'class': 'logging.StreamHandler',
                'stream': sys.stdout,
                'formatter': 'verbose'
            },
        },
        'loggers': {

            'name_your_app_django': {
                'handlers': ['file', 'console'],
                'level': ode'DEBUG',
            }
        }
    }

在我的配置日志中将以控制台和文件名打印。 注意: name_your_app_django 更改为修复您的代码。