python - Django:如何将日志级别设置为 INFO 或 DEBUG

标签 python django logging configuration-files

我试图在 Django 中将调试级别更改为 DEBUG,因为我想在我的代码中添加一些调试消息。好像没什么效果。

我的日志配置:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'simple': {
            'format': '%(levelname)s %(message)s'
        },
    },
    'handlers': {
        'console':{
            'level':'DEBUG',
            'class':'logging.StreamHandler',
            'formatter': 'simple'
        },
    },
    'loggers': {
        'django.request':{
            'handlers': ['console'],
            'propagate': False,
            'level': 'DEBUG',
        },
    },
}

代码:

import logging ; logger = logging.getLogger(__name__)
logger.debug("THIS MESSAGE IS NOT SHOWN IN THE LOGS")
logger.warn("THIS ONE IS")

控制台输出:

WARNING:core.handlers:THIS ONE IS

我也曾尝试在我的设置文件中设置 DEBUG = False 和 DEBUG = True。有什么想法吗?

编辑:如果我直接在记录器上设置日志级别,它会起作用:

import logging ; logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
logger.debug("THIS MESSAGE IS NOT SHOWN IN THE LOGS")

输出:

DEBUG:core.handlers:THIS MESSAGE IS NOT SHOWN IN THE LOGS
WARNING:core.handlers:THIS ONE IS

但是:配置文件似乎完全被忽略了。即使我将配置中的两个条目都设置回错误,它也会打印两个语句 always 。这是正确的行为还是我还遗漏了什么?

最佳答案

你需要添加例如

'core.handlers': {
    'level': 'DEBUG',
    'handlers': ['console']
}

django.request 条目并行,或者

'root': {
    'level': 'DEBUG',
    'handlers': ['console']
}

与“记录器”条目并行。这将确保在您实际使用的记录器上设置级别,而不仅仅是 django.request 记录器。

更新:要显示所有模块的消息,只需在 django.request 旁边添加条目以包含您的顶级模块,例如apihandlerscore 等等。由于您没有确切说明您的包/模块层次结构是什么,所以我不能更具体。

关于python - Django:如何将日志级别设置为 INFO 或 DEBUG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19720785/

相关文章:

java - Logback - 如何单独记录异常的简单名称

python - 使用带有 token 的 Google API [Django & AllAuth]

Django 模板

python - 如何在 django 启动时启动 redis 队列工作程序?

python - Django - 类型错误 : object of type 'NoneType' has no len() occurred while doing Pagination

python - Celeryd - 发送有关日志级别错误及以上的电子邮件

python - py.warning : Just one line, 但调试需要堆栈跟踪

python - 另一个作业不接受在 Python 脚本中生成的换行符

python在删除重复项后保留集合中的顺序

python - 将 Django 应用程序部署到 Apache 时出现问题