gpt4 book ai didi

django - 为什么 Django 日志记录不起作用?

转载 作者:行者123 更新时间:2023-12-02 13:59:18 26 4
gpt4 key购买 nike

我在使用 Django 日志记录时遇到问题。我已经阅读了有关日志记录的 Python 和 Django 文档,但我仍然不明白我做错了什么。首先,当我执行这个简单的 View 时,我只是尝试将一条消息记录到运行 Django 开发服务器的控制台:

# demo/views.py
import logging
logger = logging.getLogger(__name__)

def demo_logging(request, template):
logger.error("Got some error")
return render(request, template)

我正在使用设置文件中 django/utils/log.py 中指定的 Django 默认日志记录设置,以便我(希望)确切地知道发生了什么(显然我不知道):

# settings.py
DEBUG = True
...
LOGGING_CONFIG = None
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse',
},
'require_debug_true': {
'()': 'django.utils.log.RequireDebugTrue',
},
},
'handlers': {
'console': {
'level': 'INFO',
'filters': ['require_debug_true'],
'class': 'logging.StreamHandler',
},
'null': {
'class': 'logging.NullHandler',
},
'mail_admins': {
'level': 'ERROR',
'filters': ['require_debug_false'],
'class': 'django.utils.log.AdminEmailHandler'
}
},
'loggers': {
'django': {
'handlers': ['console'],
},
'django.request': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': False,
},
'django.security': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': False,
},
'py.warnings': {
'handlers': ['console'],
},
}
}
import logging.config
logging.config.dictConfig(LOGGING)

当我执行 View 时,除了消息之外,我在控制台中看不到任何内容,

No handlers could be found for logger "demo.views"

我不明白我做错了什么。我认为调用 logger.error 会命中链接到定义的控制台处理程序的 django 记录器。

谢谢。

跟进我通过添加一个默认的“catch-all”记录器解决了这个问题,该记录器在使用“__name__”参数创建记录器时会被触发:

'loggers': {
'': {
'handlers': ['console'],
},
...

最佳答案

调用logger = logging.getLogger(__name__)导致logging module 用于搜索名为您的模块的记录器 ( demo.views );由于您没有由该名称定义的记录器,因此它会失败。要简单地登录到控制台,您可以使用 django 'loggers' 中定义的记录器您的 key LOGGING配置:

import logging
logger = logging.getLogger('django')

def demo_logging(request, template):
logger.error("Got some error")
return render(request, template)

关于django - 为什么 Django 日志记录不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38709115/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com