温馨提示×

Python日志打印如何过滤敏感信息

小樊
111
2024-07-19 12:17:42
栏目: 编程语言

在Python中,可以通过使用logging模块来实现日志的打印和过滤。如果想要过滤敏感信息,可以通过设置过滤器来实现。

下面是一个示例代码,演示如何在日志中过滤敏感信息:

import logging

# 创建logger
logger = logging.getLogger('my_logger')
logger.setLevel(logging.DEBUG)

# 创建一个文件处理器,将日志写入文件
file_handler = logging.FileHandler('my_log.log')
file_handler.setLevel(logging.DEBUG)

# 创建一个敏感信息过滤器
class SensitiveFilter(logging.Filter):
    def filter(self, record):
        # 检查日志中是否包含敏感信息,如果包含则返回False
        if 'password' in record.msg:
            return False
        return True

# 将敏感信息过滤器添加到文件处理器中
file_handler.addFilter(SensitiveFilter())

# 创建一个格式化器
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
file_handler.setFormatter(formatter)

# 将文件处理器添加到logger中
logger.addHandler(file_handler)

# 输出日志
logger.debug('This is a normal log message')
logger.debug('This is a log message with password: 123456')

在上面的示例中,我们首先创建了一个logger,并设置其日志级别为DEBUG。然后创建了一个文件处理器,并设置其日志级别为DEBUG。接着创建了一个敏感信息过滤器SensitiveFilter,用来过滤包含敏感信息的日志记录。将敏感信息过滤器添加到文件处理器中。最后,将文件处理器添加到logger中,并输出两条日志信息,其中第二条包含了密码信息。

通过设置敏感信息过滤器,我们可以确保敏感信息不会被记录到日志文件中。

0