logging.error(), необходимо сначала настроить модуль logging. Простейший пример:
import logging
logging.basicConfig(level=logging.ERROR)
try:
# Код, который может вызвать ошибку
result = 1 / 0
except Exception as e:
logging.error("Произошла ошибка деления на ноль: %s", e)
Здесь logging.basicConfig(level=logging.ERROR) устанавливает минимальный уровень логирования на ERROR. Затем, внутри блока try...except, в случае возникновения исключения, мы используем logging.error() для записи сообщения об ошибке в лог. "%s" % e или "%s", e форматирует сообщение, включая информацию об исключении. Важно настроить logging для указания места хранения логов (файл, консоль, и т.д.) и формата записи.
Для записи ошибок в лог с помощью logging.error(), сначала необходимо настроить модуль logging. Вот пример:
import logging
# Настройка логгера (минимальный уровень - ERROR, вывод в файл, формат сообщения)
logging.basicConfig(filename='error.log', level=logging.ERROR,
format='%(asctime)s - %(levelname)s - %(message)s')
try:
# Код, который может вызвать ошибку
result = 10 / 0
except Exception as e:
# Запись информации об ошибке в лог
logging.error(f"Произошла ошибка: {e}", exc_info=True) # exc_info=True включает трассировку стека
# Альтернативный вариант:
# logging.exception("Произошла ошибка!") # Этот метод автоматически захватывает информацию об исключении
print("Программа продолжает выполняться (если ошибка была обработана).")
Пояснения:
import logging: Импортирует модуль logging.logging.basicConfig(...): Это самый простой способ настройки логгера.
filename='error.log': Указывает файл, в который будут записываться логи. Если его не указать, логи будут выводиться в консоль.level=logging.ERROR: Устанавливает минимальный уровень логирования. Будут записываться только сообщения уровня ERROR, CRITICAL и выше. Другие уровни (DEBUG, INFO, WARNING) будут игнорироваться.format='%(asctime)s - %(levelname)s - %(message)s': Определяет формат сообщения лога.
%(asctime)s: Время записи сообщения.%(levelname)s: Уровень сообщения (ERROR, WARNING и т.д.).%(message)s: Само сообщение.logging.error(f"Произошла ошибка: {e}", exc_info=True): Записывает сообщение об ошибке в лог.
f"Произошла ошибка: {e}": Само сообщение об ошибке, включающее описание исключения.exc_info=True: Важный параметр! Включает в лог полную трассировку стека, что очень полезно для отладки.logging.exception("Произошла ошибка!"): Эквивалентно logging.error("Произошла ошибка!", exc_info=True). Он автоматически добавляет информацию об исключении в сообщение лога. Используйте этот метод внутри блока except.Как это работает:
try, оно перехватывается блоком except.except, logging.error() записывает информацию об ошибке в файл error.log (или в консоль, если файл не был указан в basicConfig).exc_info=True включает трассировку стека, что позволяет точно определить, где произошла ошибка.Важно: Не забывайте правильно настраивать уровень логирования (level) в зависимости от ваших потребностей. Например, если вы хотите записывать также предупреждения, установите level=logging.WARNING.
Продвинутые темы (по желанию):