Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python日志记录-使用过滤器删除信息_Python_Logging - Fatal编程技术网

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())
#...