Python日志记录-使用过滤器删除信息
我试图在登录到控制台时删除一些信息,但在登录到文件时保留这些信息 以下是一个基本示例:Python日志记录-使用过滤器删除信息,python,logging,Python,Logging,我试图在登录到控制台时删除一些信息,但在登录到文件时保留这些信息 以下是一个基本示例: import logging import sys class MyFilter(logging.Filter): def filter(self, record): record.msg = record.msg.replace("test", "") return True logger = logging.getLogger("mylogger") logge
import logging
import sys
class MyFilter(logging.Filter):
def filter(self, record):
record.msg = record.msg.replace("test", "")
return True
logger = logging.getLogger("mylogger")
logger.setLevel(logging.DEBUG)
console = logging.StreamHandler(sys.stdout)
console.setLevel("INFO")
logger.addHandler(console)
logfile = logging.FileHandler("log.txt", 'w')
logfile.setLevel("ERROR")
logger.addHandler(logfile)
filt = MyFilter()
console.addFilter(filt)
logger.info("test one")
logger.error("test two")
我想在控制台上看到的是
one
two
然后在日志文件中
test two
但实际上只是
two
我想是编辑日志记录导致了这一切。
有没有一种方法可以实现我想要的,或者我正试图通过这种方法实现的是不可能的?我认为您需要的是一个
日志。格式化程序:
class MyFormatter(logging.Formatter):
def format(self, record):
return record.msg.replace("test", "")
#...
console.setFormatter(MyFormatter())
#...