logging.basicConfig(), обычно указывают уровень логирования (level), формат сообщения (format) и, опционально, имя файла (filename) или объект потока (stream). Например:
import logging
logging.basicConfig(level=logging.INFO,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
filename='app.log', # Опционально
filemode='w') # Опционально, по умолчанию 'a' (append)
logging.info('Это информационное сообщение.')
Это настроит логгер для записи сообщений с уровнем INFO и выше в файл app.log с указанным форматом.
Базовая конфигурация логирования в Python с использованием logging.basicConfig() - это простой способ начать логировать события в вашей программе. Она настраивает корневой логгер с предопределенными настройками.
Основные аспекты и примеры:
Импорт модуля logging: Начните с импорта модуля logging.
import logging
Вызов logging.basicConfig(): basicConfig() настраивает корневой логгер. Обычно вызывается только один раз в вашем приложении, до каких-либо вызовов logging.debug(), logging.info() и т.д.
logging.basicConfig(level=logging.INFO)
Аргумент level определяет минимальный уровень логирования, который будет обработан. В этом примере установлена logging.INFO, это означает, что будут логироваться сообщения уровней INFO, WARNING, ERROR и CRITICAL.
Логирование сообщений: Теперь можно использовать функции логирования для записи сообщений.
logging.info("Это информационное сообщение.")
logging.debug("Это отладочное сообщение.") # Не отобразится, т.к. level = INFO
logging.warning("Это предупреждение!")
logging.error("Произошла ошибка.")
logging.critical("Критическая ошибка! Приложение может быть нестабильно.")
Полный пример:
import logging
# Настраиваем базовый логгер
logging.basicConfig(level=logging.INFO,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
# Используем логгер
logging.info("Приложение запущено.")
try:
result = 10 / 0
except ZeroDivisionError:
logging.exception("Ошибка деления на ноль!") # Логирует ошибку и traceback
logging.info("Приложение завершено.")
В этом примере также добавлен аргумент format, который позволяет настроить формат выводимых сообщений. %(asctime)s - время сообщения, %(name)s - имя логгера (по умолчанию 'root'), %(levelname)s - уровень логирования, %(message)s - само сообщение. Функция logging.exception() используется для логирования исключений вместе с трассировкой стека.
Аргументы basicConfig():
level: Уровень логирования (например, logging.DEBUG, logging.INFO, logging.WARNING, logging.ERROR, logging.CRITICAL).filename: Имя файла для записи логов. Если указан, логи будут записываться в файл.filemode: Режим открытия файла (например, 'w' для перезаписи, 'a' для добавления). По умолчанию 'a'.format: Формат выводимых сообщений. Используйте placeholders, такие как %(asctime)s, %(name)s, %(levelname)s, %(message)s.datefmt: Формат даты и времени.stream: Объект потока для записи логов (например, sys.stdout, sys.stderr).Важно помнить:
basicConfig() после того, как логгер уже настроен, может не иметь эффекта, если корневой логгер уже был настроен другим способом. Поэтому вызовите его в самом начале вашей программы.basicConfig().