9a2aea038a
- Add pyproject.toml with uv and ruff configuration - Pin Python version to 3.13 via .python-version - Add Makefile commands: lint, format, fix - Apply ruff formatting to entire codebase - Remove unused imports (base64 in yookassa/simple_subscription) - Update .gitignore for new config files
55 lines
1.8 KiB
Python
55 lines
1.8 KiB
Python
"""Специальный логгер для платежей.
|
|
|
|
Выделенный логгер для всех платежных операций.
|
|
Записи идут в отдельный файл payments.log.
|
|
|
|
Использование:
|
|
from app.utils.payment_logger import payment_logger
|
|
|
|
payment_logger.info("Создан YooKassa платеж %s на %s", payment_id, amount)
|
|
payment_logger.error("Ошибка обработки webhook: %s", error)
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
import logging
|
|
|
|
|
|
# Выделенный логгер для всех платежных операций
|
|
payment_logger = logging.getLogger('app.payments')
|
|
|
|
|
|
def configure_payment_logger(
|
|
handler: logging.Handler,
|
|
formatter: logging.Formatter | None = None,
|
|
level: int = logging.INFO,
|
|
) -> None:
|
|
"""Настроить payment_logger с указанным хэндлером.
|
|
|
|
Args:
|
|
handler: Хэндлер для записи логов (FileHandler, StreamHandler и т.д.)
|
|
formatter: Форматтер для логов (опционально)
|
|
level: Уровень логирования (по умолчанию INFO)
|
|
"""
|
|
payment_logger.setLevel(level)
|
|
|
|
if formatter:
|
|
handler.setFormatter(formatter)
|
|
|
|
payment_logger.addHandler(handler)
|
|
|
|
# Предотвращаем дублирование в родительских логгерах
|
|
payment_logger.propagate = False
|
|
|
|
|
|
def get_payment_logger() -> logging.Logger:
|
|
"""Получить экземпляр payment_logger.
|
|
|
|
Альтернативный способ получения логгера для модулей,
|
|
которые предпочитают явный вызов функции.
|
|
|
|
Returns:
|
|
Настроенный логгер платежей
|
|
"""
|
|
return payment_logger
|