Files
remnawave-bedolaga-telegram…/app/utils/payment_logger.py
gy9vin d343a317ee feat(logging): добавить систему ротации логов
- Ежедневная ротация в 00:00 с архивацией в tar.gz
  - Разделение по уровням: info.log, warning.log, error.log
  - Отдельный payments.log для платежных операций
  - Отправка архивов в Telegram-канал бекапов
  - Автоочистка архивов старше 7 дней (настраивается)
  - Переключатель LOG_ROTATION_ENABLED (по умолчанию выключен)
2025-12-27 19:02:28 +03:00

55 lines
1.9 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""Специальный логгер для платежей.
Выделенный логгер для всех платежных операций.
Записи идут в отдельный файл 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
from typing import Optional
# Выделенный логгер для всех платежных операций
payment_logger = logging.getLogger("app.payments")
def configure_payment_logger(
handler: logging.Handler,
formatter: Optional[logging.Formatter] = 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