Как обрабатывать ошибки и логировать их в Python

Практические лайфхаки для разработчиков, DevOps и админов: Docker, Linux, Bash, Python, Golang, Ansible, логи и безопасность — только рабочие решения. Даем готовые команды, конфиги и приёмы диагностики, которые экономят часы и дни. Если нужно быстро настроить, отладить и обезопасить инфраструктуру — вы по адресу.

pythonлогированиеlogging

👁 В реальных проектах важно не только обрабатывать ошибки, но и записывать их в логи для дальнейшего анализа. В Python для этого отлично подходит модуль logging. Вместо того чтобы просто печатать ошибки в консоль, можно настроить логгер для сохранения информации в файл, что удобно для диагностики и отладки.

📝 Пример простого кода для настройки логирования:

import logging

# Настройка логгера
logging.basicConfig(
    level=logging.INFO,
    format='%(asctime)s - %(levelname)s - %(message)s',
    handlers=[
        logging.FileHandler('app.log'),
        logging.StreamHandler()
    ]
)

# Пример функции с обработкой ошибок
def divide(a, b):
    try:
        result = a / b
        logging.info(f'Result of {a} / {b}: {result}')
        return result
    except ZeroDivisionError as e:
        logging.error(f'Error: {e} when dividing {a} by {b}')
        return None

# Вызов функции
divide(10, 0)

🔎 Что делает этот код:

  • Настроен логгер с двумя обработчиками — FileHandler записывает логи в файл app.log. StreamHandler выводит логи в консоль.
  • Пример функции, которая делит два числа, и если деление на ноль, то логирует ошибку.

📌 Как использовать:

Этот подход полезен для продакшн-окружений, когда важно не только отловить ошибку, но и иметь возможность восстановить её детали по логам. Это особенно важно для распределённых систем и микросервисов, где трудно отслеживать все ошибки в реальном времени.

❗️ Подходит для любых Python-проектов, включая API, бэкенд-системы и автоматические скрипты.

tags: #python #логирование #разработка

❤️ @recura_tech

Скриншот тёмной темы с примером кода Python, настройкой logging и обработкой ZeroDivisionError; логотип RECURA.
Скриншот примера кода логирования в Python.

Читайте так же