出现KeyError: ‘formatters‘错误的问题在python的logging中

在Python的logging模块中,可以通过配置Logger对象的属性来控制日志的输出格式、级别、输出位置等。其中,输出格式可以通过Formatter对象来定义,例如:

“`
import logging

logger = logging.getLogger(__name__)
handler = logging.StreamHandler()
formatter = logging.Formatter(‘%(asctime)s – %(name)s – %(levelname)s – %(message)s’)
handler.setFormatter(formatter)
logger.addHandler(handler)
“`

在上面的代码中,我们创建了一个Logger对象,并添加了一个StreamHandler对象作为输出位置。然后,我们创建了一个Formatter对象,并将其设置为handler的输出格式。最后,我们将handler添加到Logger对象中。

然而,有时候在使用Formatter对象时,可能会出现KeyError: ‘formatters’错误。这个错误通常是由于在配置文件中使用了错误的键名或者格式化字符串中使用了错误的占位符导致的。

例如,下面的代码中,我们在配置文件中使用了错误的键名:

“`
[loggers]
keys=root

[handlers]
keys=consoleHandler

[formatters]
keys=simpleFormatter

[logger_root]
level=DEBUG
handlers=consoleHandler

[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=simpleFormatter
args=(sys.stdout,)

[formatter_simpleFormatter]
format=%(asctime)s – %(name)s – %(levelname)s – %(message)s
“`

在上面的配置文件中,我们将Formatter对象的键名设置为了’simpleFormatter’,但是在Logger对象的配置中,我们却使用了’formatter’键来引用它。这就会导致KeyError: ‘formatters’错误。

要解决这个问题,我们需要将Logger对象的配置中的’formatter’键改为’format’键,或者将Formatter对象的键名改为’formatters’。另外,我们还需要注意在格式化字符串中使用正确的占位符,否则也会导致类似的错误。

Related Posts

  • 如何解决在下载 PaddleClas 预训练模型时出现 ModuleNotFoundError No module named ‘ppcls‘ 错误的问题
  • 将QWidget的UI界面转换为图像
  • Gin Web框架
  • 学习Python中的字典——基本数据类型
  • 使用Selenium进行Python网络爬虫
  • 学习Python–字典作为基本数据类型
  • Tkinter教程12/15介绍Toplevel窗口和小部件的方法
  • 已解决:激活虚拟环境时出现错误,提示Anaconda3\envs\[envs]\Library\ssl\cacert.pem不应该存在
  • Scalene是一款Python性能分析工具,支持CPU、GPU和内存分析,并提供基于人工智能的优化建议
  • 解释python中的按位与运算符
  • Python内置模块sys
  • 国际贸易网络爬虫程序
  • 使用Python爬虫分析网页信息
  • “Python错误:TypeError:不可哈希类型:’dict’或’list'”
  • 用数据可视化多维度解释(Python)胜过千言万语!
  • 使用Selenium进行JavaScript动态渲染界面的爬取