Интерпретация сообщения:
Это говорит о том, что вы должны передать параметры в качестве аргументов и притвориться , что вы использовали (старый) стиль форматирования %
(но передайте их как аргументы вместо использования %
и оборачивания аргументов в скобках). не говорит о том, что вы используете %
для форматирования строки в сообщении журнала.
Почему это так:
Причина, по которой вы хотите пройти этот путь, заключается в том, что строка проходит шаблонную подстановку, только если сообщение действительно создано каким-либо обработчиком журнала.Строковые операции всегда дороги с точки зрения производительности.Если вы выполняете тонну журналирования на уровне DEBUG, но редко используете уровень DEBUG в своем приложении, например, это может сложиться быстро.
Как это исправить:
Я думаю, что если бы оно было изменено на logging.info("Iter %d: %d/%d=%d", iter_, c, n, _pc(c, n)))
, сообщение исчезло бы (предполагая, что это цифры, что трудно понять из примера).