Как сделать отступ для многострочного сообщения, напечатанного на Python Logger? - PullRequest
0 голосов
/ 28 октября 2019

Текущее поведение:

DEBUG:package:123 > message with
multiple lines
foo bar

Требуемое поведение:

DEBUG:package:123 > message with
                    multiple lines
                    foo bar

DEBUG:package:123 может иметь различную ширину, поэтому невозможно настроить сообщение перед отправкой в ​​регистратор.

1 Ответ

1 голос
/ 28 октября 2019

Конечный пользовательский форматтер без сообщения в строке fmt:

import textwrap

class Formatter(logging.Formatter):
    def __init__(self):
        super(Formatter, self).__init__(fmt="%(levelname)-8s %(name)20s:%(lineno)-3d > ")

    def format(self, record):
        header = super(Formatter, self).format(record)
        msg = textwrap.indent(record.message, ' ' * len(header)).strip()
        return header + msg
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...