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()
.