Мне нужен способ для регистратора Python не регистрировать ОШИБКУ или выше. Это нужно только для регистрации меньше, чем ОШИБКА.
import logging
from logging import StreamHandler
def get_log_formatter():
datefmt = '%b %d %y %H:%M:%S'
formatter = logging.Formatter('%(asctime)s [%(module)s:%(levelname)s] %(message)s',
datefmt=datefmt)
return formatter
class MyHandler(StreamHandler):
def __init__(self, max_level, *args, **kwargs):
super(MyHandler, self).__init__(*args, **kwargs)
self.max_level = max_level
def emit(self, record):
if record.levelno >= self.max_level:
return
return super(MyHandler, self).emit(record)
handl = MyHandler(logging.ERROR)
handl.setLevel(logging.INFO)
handl.setFormatter(get_log_formatter())
logger = logging.getLogger("testing_logger")
logger.addHandler(handl)
logger.setLevel(logging.INFO)
Кажется, это работает, но имеет ли это смысл? Есть ли лучший способ отфильтровать логлайн?
In [3]: logger_num = 0
In [4]: logger = remake()
In [5]: logger.info("Why")
May 16 01 16:50:10 [<ipython-input-5-c350362291ad>:INFO] Why
In [6]: logger.warn("Why")
May 16 01 16:50:13 [<ipython-input-6-56809439d5a4>:WARNING] Why
In [7]: logger.error("Why")
In [8]: