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.
Продвинутые темы (по желанию):