Django日志无法写入错误信息至django.log文件求助
Django日志无法写入django.log问题解决
问题核心:你在views中创建的logger = logging.getLogger(__name__)属于自定义模块logger,而当前settings.py仅配置了django根logger,两者未关联,导致ERROR日志无法写入文件。
解决步骤
1. 配置自定义模块logger
在settings.py的LOGGING['loggers']中添加对应你app的logger配置:
LOGGING = { # 保留原有formatters、handlers配置... 'loggers': { 'django': { 'handlers': ['file', 'console'], 'level': 'ERROR', 'propagate': True, }, # 替换成你的views所在app名称,比如app名为myapp 'myapp': { 'handlers': ['file', 'console'], 'level': 'ERROR', 'propagate': False, }, }, }
如果想让所有自定义logger都生效,也可以配置根logger(用空字符串''):
'loggers': { 'django': { 'handlers': ['file', 'console'], 'level': 'ERROR', 'propagate': True, }, '': { 'handlers': ['file', 'console'], 'level': 'ERROR', 'propagate': False, }, }
2. 确认日志级别配置
确保handler和logger的level均设置为ERROR或更低级别(如WARNING),当前你的配置已经满足要求:
- handler的level是过滤日志的最低门槛,只有≥该级别的日志会被处理
- logger的level是生成日志的最低门槛,只有≥该级别的日志会被传递给handler
3. 忽略PyCharm格式提示
PyCharm对部分日志格式变量的识别存在误报,你使用的%(levelname)s %(asctime)s等都是Python logging的合法格式,不影响实际运行,可直接忽略该提示。
内容的提问来源于stack exchange,提问作者alif
相关产品推荐
相关产品推荐

