Files
remnawave-bedolaga-telegram…/app/utils/payment_logger.py
T
c0mrade 9a2aea038a chore: add uv package manager and ruff linter configuration
- 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
2026-01-24 17:45:27 +03:00

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