Я создал переопределитель форматирования, который маскирует некоторые строки следующим образом:
class MaskFormatter(logging.Formatter):
def __init__(self, fmt, mask):
logging.Formatter.__init__(self, fmt, mask)
self.mask = mask
def format(self, record):
result = logging.Formatter.format(self, record)
if result is not None and result.find(self.mask) != -1:
result = result.replace(self.mask, '*' * len(self.mask))
return result
Я использую его так:
formatter = MaskFormatter('%(asctime)s %(levelname)s' +
' %(module)s %(lineno)d %(message)s', mask='abcde')
hdlr.setLevel(logging.DEBUG)
logger.setLevel(logging.DEBUG)
hdlr.setFormatter(formatter)
однако в своих строках журнала я заметил, что дата и времятеперь тоже в маске !!Хотя я попросил его замаскировать только "abcde", может кто-нибудь помочь, пожалуйста?
все строки журнала имеют префикс *****
вместо реального времени:
***** DEBUG mail