Инфраструктура ведения журнала позволяет включать и выключать уровни в зависимости от уровня, на котором будет отправлено сообщение, и т. Д. c.
Первый метод принимает строку и кортеж объектов. Если ваша запись в журнале не будет регистрироваться на основе каких-либо критериев, которые вы включили, строка вообще не интерполируется.
Второй метод немедленно интерполирует строку и передает результат в структуру ведения журнала. Это может быть дорого, так как вызов str
и repr
для произвольных объектов может выполнить любой код. Это неэффективно, если, например, ваш уровень ведения журнала выключен.
Содержимое строки будет одинаковым в любом случае. Основное различие заключается в том, когда аргументы интерполируются, а не как. Отложенная интерполяция (передача аргументов в логгер вместо того, чтобы делать это самостоятельно) намного эффективнее, когда некоторые уровни логирования или назначения отключены.