Python Glossary English

все Python 3loggingпонятие

logging.Formatter

форматирование

Задаёт формат строк лога: время, уровень, имя логгера, сообщение и т.д. Привязывается к Handler.

Синтаксис

fmt = logging.Formatter(fmt=None, datefmt=None, style='%')

Форматтер ставится на обработчик через handler.setFormatter(), а не на логгер — у Logger такого метода вообще нет, и это самая частая причина «формат не применился». Плейсхолдеры по умолчанию в стиле %-подстановки: чтобы писать {message} в фигурных скобках, нужно явно передать style='{'. Если задать свой datefmt, из времени исчезнут миллисекунды — их придётся вернуть отдельным %(msecs)d.

Примеры

import logging
handler = logging.StreamHandler()
formatter = logging.Formatter(
fmt='%(asctime)s [%(levelname)s] %(name)s: %(message)s',
datefmt='%Y-%m-%d %H:%M:%S'
)
handler.setFormatter(formatter)
logging.getLogger().addHandler(handler)

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности