Как записывать сообщения в лог с помощью `logging.info()`?

Для записи сообщения уровня INFO в лог с помощью logging.info(), сначала необходимо настроить базовую конфигурацию логгера. Например:
import logging

logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')

logging.info('Это информационное сообщение')
В этом примере:
  • logging.basicConfig() настраивает логгер, устанавливая уровень логирования на INFO и формат сообщений.
  • logging.info() записывает сообщение уровня INFO. Сообщение будет отображено, так как уровень INFO включен в конфигурации.
Без logging.basicConfig() ничего не будет отображаться.

Для записи информационных сообщений в лог с помощью logging.info(), вам сначала необходимо настроить базовую конфигурацию модуля logging. Самый простой способ - использовать функцию logging.basicConfig().

Пример базовой конфигурации:

import logging

logging.basicConfig(level=logging.INFO, 
                    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')

logger = logging.getLogger(__name__)

logger.info("Это информационное сообщение!")

Разберем код:

  • import logging: Импортируем модуль logging.
  • logging.basicConfig(...): Настраиваем базовую конфигурацию логгера.
    • level=logging.INFO: Устанавливает минимальный уровень логгирования. Сообщения с уровнем INFO и выше (WARNING, ERROR, CRITICAL) будут записаны в лог.
    • format='%(asctime)s - %(name)s - %(levelname)s - %(message)s': Определяет формат записи лога. Здесь используются следующие параметры:
      • %(asctime)s: Дата и время события.
      • %(name)s: Имя логгера. В данном случае, это имя модуля (__name__).
      • %(levelname)s: Уровень сообщения (INFO, WARNING, ERROR и т.д.).
      • %(message)s: Само сообщение, которое вы передаете в logging.info().
  • logger = logging.getLogger(__name__): Получаем логгер с именем текущего модуля. Рекомендуется использовать именованные логгеры.
  • logger.info("Это информационное сообщение!"): Записываем сообщение с уровнем INFO в лог.

Вывод в консоль (или в файл, если это настроено):

2023-10-27 10:00:00,000 - __main__ - INFO - Это информационное сообщение!

Дополнительные возможности:

  • Логгирование в файл: Вы можете настроить logging.basicConfig() для записи логов в файл, используя параметр filename='имя_файла.log'.
  • Более сложные конфигурации: Для более гибкой настройки можно использовать logging.config.fileConfig() или logging.config.dictConfig(), позволяющие задавать различные обработчики (handlers) и форматтеры (formatters).
  • Передача исключений в лог: Используйте logger.exception() для записи сообщения об ошибке вместе с трассировкой стека.
  • Использование различных уровней логирования: Помимо logging.info(), используйте logging.debug(), logging.warning(), logging.error() и logging.critical() для сообщений разной важности.

Правильное использование логирования помогает отлаживать код, мониторить работу приложения и анализировать его поведение.

0