コンソールへのログ記録中に一部の情報を削除しようとしていますが、ファイルへのログ記録中にその情報を保持します
基本的な例を次に示します。
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
LogRecord の編集が原因だと思います。私が望むものを達成する方法はありますか、それとも私がしようとしていることはこの方法では不可能ですか?