python - 日志记录级别是信息,但只显示警告。Python 日志记录
问题描述
我们有一个小的配置类,它可以返回一个logging
带有一些特殊格式的记录器对象(来自模块,而不是自定义对象)。记录器级别为 20,但不会打印低于警告的任何内容。是否有任何其他参数会影响日志记录行为?下面,稍微执行一下我的意思:
logger = config_object.make_logger()
logger.setLevel(10)
# Prints logger attrs
print(logger.name)
print(logger.disabled)
print(logger.filters)
print(logger.level)
# Logger behaviour seems not right
logger.critical(f'method critical')
logger.error(f'method error')
logger.warning(f'method warning')
logger.info(f'method info')
logger.debug(f'method debug')
上面的代码输出以下内容:
__main__
False
[]
10
method critical
method error
method warning
如果logger.level
是 10,它不应该一直记录到debug
吗?
解决方案
来自日志处理程序的官方文档:
setLevel()
就像在对象中一样,该方法logger
指定将被分派到适当目的地的最低严重性。为什么有两种setLevel()
方法?记录器中设置的级别决定了它将传递给其处理程序的消息的严重性。每个处理程序中设置的级别决定了该处理程序将发送哪些消息。
推荐阅读
- c# - 如何将数据库中的数据同步到组合框
- api - 是否可以将 Azure Functions 项目添加到 .Net Core Api 解决方案并使用公共存储库?
- opengl - 在 glsl 顶点着色器中使用额外的统一 mat4 转换灯光?
- python-3.x - 如果第 5 个元素是“名称”,则按每第 4 个元素拆分列表;如果第 5 个元素是地址,则按第 5 个元素拆分
- ionic-framework - Ionic v3 搜索栏过滤对象
- jquery - 我可以在加载 Kendo Grid 时有条件地将行显示为可编辑吗?
- ruby-on-rails - 这个版本的 Ruby 在 Heroku-18 上不可用
- swift - 自定义 MKAnnotationView 想要再次被点击
- omnet++ - 模块 ipv4NetworkConfigurator 中的错误,找不到配置器模块“ipv4NetworkConfigurator”
- laravel - 我尝试在组件 vue 中安装组件