все 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Сообщить о неточности