Проверьте, все ли переключатели выбраны в C #

Это адаптация ответа estani на новую реализацию logging.Formatter, которая теперь опирается на стили форматирования. Шахта опирается на формат стиля '{', но его можно адаптировать. Может быть уточнено, чтобы быть более общим и разрешить выбор стиля форматирования и пользовательских сообщений в качестве аргументов __init__.

class SpecialFormatter(logging.Formatter):
    FORMATS = {logging.DEBUG : logging._STYLES['{']("{module} DEBUG: {lineno}: {message}"),
           logging.ERROR : logging._STYLES['{']("{module} ERROR: {message}"),
           logging.INFO : logging._STYLES['{']("{module}: {message}"),
           'DEFAULT' : logging._STYLES['{']("{module}: {message}")}

    def format(self, record):
        # Ugly. Should be better
        self._style = self.FORMATS.get(record.levelno, self.FORMATS['DEFAULT'])
        return logging.Formatter.format(self, record)

hdlr = logging.StreamHandler(sys.stderr)
hdlr.setFormatter(SpecialFormatter())
logging.root.addHandler(hdlr)
logging.root.setLevel(logging.INFO)

0
задан marc_s 21 March 2019 в 20:01
поделиться