当前位置: 首页 > 知识库问答 >
问题:

python - 为什么Python的logging模块自定义Filter无法输出给定级别的日志信息?

赫连实
2023-04-24
class CustomFilter(logging.Filter):
    def filter(self, record):
        message = record.getMessage()
        return 'custom' in message

customFilter = CustomFilter()

logger: Logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
logger.addFilter(customFilter)

logger.debug('This is a debug message with custom keyword')
logger.info('This is an info message with custom keyword')
logger.warning('This is a warning message with custom keyword')
logger.error('This is an error message with custom keyword')
logger.critical('This is a critical message with custom keyword')

为什么上述代码不会在控制台打印出 debug 和 info 级别的日志信息?

只会输出:

This is a warning message with custom keyword
This is an error message with custom keyword
This is a critical message with custom keyword

共有1个答案

孔星宇
2023-04-24

使用了自定义的 filter,该 filter 只会对包含 "custom" 关键字的日志信息进行过滤,只有 warning 级别及以上的日志信息中包含 "custom" 关键字,所以只输出了 warning、error 和 critical 级别的日志信息。

要在控制台打印出 debug 和 info 的日志信息,可以移除自定义的 filter 或者修改 filter 过滤条件,例如将 return 'custom' in message 修改为 return true(返回true),从而让所有日志信息都符合该 filter,即:不进行任何过滤。

 类似资料:
  • 本文向大家介绍解决Python logging模块无法正常输出日志的问题,包括了解决Python logging模块无法正常输出日志的问题的使用技巧和注意事项,需要的朋友参考一下 废话少说,先上代码 问题一:测试过程中,只能打印出test_logger function一条语句 问题二:明明只在data_logger中打印出语句,但是logger的日志中也出现了相关的日志。 问题一解决方案: 利用

  • 本文向大家介绍python logging日志模块的详解,包括了python logging日志模块的详解的使用技巧和注意事项,需要的朋友参考一下 python logging日志模块的详解 日志级别 日志格式说明 日志输出 有两种方式记录跟踪,一种输出控制台,另一种是记录到文件中,如日志文件。 将日志输出到控制台 在a.py写入以下信息 【解析】 通过logging.basicConfig函数对

  • 主要内容:自定义模块编写说明文档到目前为止,读者已经掌握了导入 Python 标准库并使用其成员(主要是函数)的方法,接下来要解决的问题是,怎样自定义一个模块呢? 前面章节中讲过,Python 模块就是 Python 程序,换句话说,只要是 Python 程序,都可以作为模块导入。例如,下面定义了一个简单的模块(编写在 demo.py 文件中): 可以看到,我们在 demo.py 文件中放置了变量(name 和 add)、函数(

  • 本文向大家介绍Python常用模块logging——日志输出功能(示例代码),包括了Python常用模块logging——日志输出功能(示例代码)的使用技巧和注意事项,需要的朋友参考一下 用途 logging模块是Python的内置模块,主要用于输出运行日志,可以灵活配置输出日志的各项信息。 基本使用方法 参数 日志一共分成5个等级,从低到高分别是:DEBUG ,INFO ,WARNING ,ER

  • 本文向大家介绍Python日志:自定义输出字段 json格式输出方式,包括了Python日志:自定义输出字段 json格式输出方式的使用技巧和注意事项,需要的朋友参考一下 最近有一个需求:将日志以json格式输出, 并且有些字段是logging模块没有的.看了很多源码和资料, 终于搞定, 抽取精华分享出来, 一起成长. 运行结果: 其实就是重写了logging.Filter的filter方法,自定

  • 本文向大家介绍Python import自定义模块方法,包括了Python import自定义模块方法的使用技巧和注意事项,需要的朋友参考一下 python包含子目录中的模块方法比较简单,关键是能够在sys.path里面找到通向模块文件的路径。 下面将具体介绍几种常用情况: (1)主程序与模块程序在同一目录下: 如下面程序结构:     若在程序test1.py中导入模块mod1, 则直接使用im