Python Glossary English

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

logging.LogRecord

записи и фильтры

Запись лога: объект с сообщением, уровнем, именем логгера, временем, файлом и строкой вызова. Его получают фильтры и форматтеры.

Синтаксис

LogRecord(name, level, pathname, lineno, msg, args, exc_info, func=None, sinfo=None)

Шаблон и аргументы хранятся раздельно (msg и args) и склеиваются только в getMessage(), поэтому logger.info('%s', x) не тратит время на форматирование, если уровень отключён. Ошибка в шаблоне вроде info('%s %s', 1) не бросает исключение в ваш код: logging печатает «--- Logging error ---» в stderr и теряет строку. Руками LogRecord не создают — запись делает логгер, а для тестов есть makeLogRecord().

Примеры

import logging
def show(record):
    print(record.name, record.levelname, repr(record.msg), record.args, record.getMessage())
    return False  # дальше не пускать
log = logging.getLogger('shop')
log.addFilter(show)
log.warning('остаток %d шт.', 3)  # → shop WARNING 'остаток %d шт.' (3,) остаток 3 шт.

См. также

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