Вопрос проверяет понимание логирования, уровней логов и различий между отладочным выводом и промышленным логированием.
Для логирования используется модуль logging, который поддерживает уровни логов, форматирование и запись в файлы или внешние системы. В отличие от print, logging позволяет управлять уровнем сообщений и централизованно настраивать вывод. Это важно для продакшн-приложений. print подходит только для простой отладки.
Логирование — это системный способ записи событий, ошибок и диагностической информации.
В стандартной библиотеке определены уровни:
DEBUG
INFO
WARNING
ERROR
CRITICAL
Это позволяет фильтровать сообщения.
import logging
logging.basicConfig(level=logging.INFO)
logging.info("Приложение запущено")
logging.error("Ошибка подключения")
print:
выводит только в stdout
не имеет уровней
сложно отключить централизованно
logging:
поддерживает уровни
пишет в файл, сокет, систему мониторинга
позволяет задавать формат
интегрируется с инфраструктурой
logging.basicConfig(
filename="app.log",
level=logging.INFO,
format="%(asctime)s %(levelname)s %(message)s"
)
Логирование используется:
диагностика ошибок
аудит действий
мониторинг работы сервиса
logging — стандартный промышленный инструмент для логирования, тогда как print подходит только для быстрой локальной отладки.