3

コンソールへのログ記録中に一部の情報を削除しようとしていますが、ファイルへのログ記録中にその情報を保持します

基本的な例を次に示します。

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 の編集が原因だと思います。私が望むものを達成する方法はありますか、それとも私がしようとしていることはこの方法では不可能ですか?

4

1 に答える 1