← Назад к вопросам

Какие инструменты используешь для работы с логированием?

2.0 Middle🔥 131 комментариев
#Python Core

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Инструменты логирования в Python

Для логирования я использую стандартный модуль logging как основу, дополняя его специализированными инструментами в зависимости от задач.

Встроенный logging

В большинстве проектов начинаю с модуля logging из стандартной библиотеки:

import logging

logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)

# Настройка форматирования
formatter = logging.Formatter(
    "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
)

# Обработчик для файла
file_handler = logging.FileHandler("app.log")
file_handler.setLevel(logging.DEBUG)
file_handler.setFormatter(formatter)

logger.addHandler(file_handler)

structlog

Для сложных проектов с микросервисами использую structlog — он предоставляет структурированное логирование (JSON вывод):

import structlog

structlog.configure(
    processors=[
        structlog.stdlib.filter_by_level,
        structlog.stdlib.add_logger_name,
        structlog.stdlib.add_log_level,
        structlog.stdlib.PositionalArgumentsFormatter(),
        structlog.processors.TimeStamper(fmt="iso"),
        structlog.processors.JSONRenderer()
    ]
)

log = structlog.get_logger()
log.info("event", user_id=123, action="login")
# Выведет: {"event": "event", "user_id": 123, "action": "login", ...}

Это удобно для логирования в Elasticsearch, Datadog или других решений для анализа.

Специализированные инструменты

Sentry — для отслеживания ошибок в продакшене:

import sentry_sdk

sentry_sdk.init(
    dsn="https://examplePublicKey@o0.ingest.sentry.io/0",
    traces_sample_rate=1.0,
    environment="production"
)

loguru — для удобного логирования с автоматической ротацией файлов:

from loguru import logger

logger.add("file_{time}.log", rotation="500 MB")
logger.info("Application started")

Лучшие практики

  1. Используй уровни корректно: DEBUG для детальной информации, INFO для важных событий, WARNING для предупреждений, ERROR для ошибок
  2. Структурированное логирование помогает при анализе логов в продакшене
  3. Не логируй чувствительные данные (пароли, токены, персональные данные)
  4. Используй контекст для трейсирования запросов через микросервисы
  5. Ротируй логи чтобы не заполнять диск

Выбор инструмента зависит от размера проекта, требований к мониторингу и инфраструктуре.