python - 尽管配置,Django 信息和调试日志被忽略
问题描述
所以我正在尝试在 Django 程序中设置日志记录。我在 settings.py 中设置了日志记录配置:
DEBUG = True
LOGGING_CONFIG = None
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'custom': {
'format': '%(asctime)s %(levelname)-8s %(name)-15s %(message)s'
}
},
'handlers': {
'console': {
'level': 'NOTSET',
'class': 'logging.StreamHandler',
'formatter': 'custom'
}
},
'loggers': {
'': {
'handlers': ['console'],
}
}
}
import logging.config
logging.config.dictConfig(LOGGING)
然后我执行以下操作:
import logging
logger = logging.getLogger(__name__)
logger.info("INFO")
logger.debug("DEBUG")
logger.warn("WARN")
logger.critical("CRITICAL")
logger.error("ERROR")
但我只得到以下输出:
2019-05-21 14:08:31,877 WARNING dashboards.charts WARN
2019-05-21 14:08:31,877 CRITICAL dashboards.charts CRITICAL
2019-05-21 14:08:31,877 ERROR dashboards.charts ERROR
我尝试将级别更改为调试或信息,但这并没有改变任何东西。格式化程序正常工作,所以我不知道为什么关卡不起作用。
解决方案
尝试放入level
里面loggers
而不是handlers
. 例如:
'handlers': {
'console': {
'class': 'logging.StreamHandler',
'formatter': 'custom'
}
},
'loggers': {
'': {
'handlers': ['console'],
'level': 'DEBUG'
}
}
推荐阅读
- java - 在将文件从源复制到目标时保留文件的上次修改日期时间
- android - 带有 TensorflowLite 的 Kotlin Multiplateform
- flutter - 我不能在颤振网络上使用 svg 我该怎么做?
- javascript - 为什么拒绝和抛出的处理方式与 Promise.all 中的异步函数不同?
- android - 如何在 Glide 中为 Recyclerview 预加载图像
- react-native - 创建导航器不带参数
- python - 如何在不知道其位置的情况下从 2D Numpy 数组中删除元素
- javascript - 通过类或名称获取嵌套子元素的父元素
- bash - awk 打印有条件的第一行
- oracle - 在 PL SQL 中解析 JSON 数组 APEX_JSON