You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中配置logging库不记录特定内容或词汇?

如何在Python logging中过滤特定词汇或错误类型

当然有办法啦!Python的logging模块自带了灵活的过滤机制,最靠谱的方式就是自定义过滤器(Filter),不管你是想屏蔽特定词汇,还是不想记录某类错误,都能轻松实现。


一、过滤特定词汇

我们可以写一个自定义的Filter类,在日志被写入文件前检查消息内容,如果包含你不想记录的词汇,就直接跳过这条日志。

步骤1:定义过滤器类

import logging

class BlocklistFilter(logging.Filter):
    def __init__(self, blocked_words):
        # 接收要屏蔽的词汇列表
        self.blocked_words = blocked_words
        super().__init__()

    def filter(self, record):
        # 检查日志消息里有没有包含要屏蔽的词汇
        log_message = record.getMessage()
        for word in self.blocked_words:
            if word in log_message:
                return False  # 返回False就不会记录这条日志
        return True  # 返回True才会写入日志文件

步骤2:把过滤器加到你的日志配置里

直接修改你现有的代码,给FileHandler添加这个过滤器就行:

fname = "your_log_file.log"
# 把你要屏蔽的词汇放在这里
blocked_words = ["秘密", "敏感数据", "不想看到的词"]

# 创建文件处理器
file_handler = logging.FileHandler(fname, 'w', 'utf-8')
# 给处理器加上我们的过滤器
file_handler.addFilter(BlocklistFilter(blocked_words))

# 完成日志配置
logging.basicConfig(
    handlers=[file_handler],
    level=logging.DEBUG,
    format='%(asctime)s: %(message)s'
)

二、过滤特定类型的错误

如果是想屏蔽某类异常(比如ValueError、ConnectionError这类)的日志,我们可以在过滤器里检查日志的异常信息:

定义异常过滤器类

class BlockExceptionFilter(logging.Filter):
    def __init__(self, blocked_exceptions):
        # 把要屏蔽的异常类转成元组,方便后续判断
        self.blocked_exceptions = tuple(blocked_exceptions)
        super().__init__()

    def filter(self, record):
        # 检查这条日志是否携带异常信息
        if record.exc_info:
            exc_type, exc_value, _ = record.exc_info
            # 如果异常属于我们要屏蔽的类型,就跳过记录
            if isinstance(exc_value, self.blocked_exceptions):
                return False
        return True

使用方式

比如你不想记录ValueError和TypeError的日志,就把这个过滤器也加到处理器上:

file_handler.addFilter(BlockExceptionFilter([ValueError, TypeError]))

小提示

你还可以同时添加多个过滤器,比如既屏蔽特定词汇,又屏蔽特定异常,日志处理器会依次执行每个过滤器的检查,只要有一个过滤器返回False,这条日志就不会被记录。

内容的提问来源于stack exchange,提问作者Ethan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:32:45