mirror of
https://github.com/BEDOLAGA-DEV/remnawave-bedolaga-telegram-bot.git
synced 2026-01-20 03:40:26 +00:00
- Ежедневная ротация в 00:00 с архивацией в tar.gz - Разделение по уровням: info.log, warning.log, error.log - Отдельный payments.log для платежных операций - Отправка архивов в Telegram-канал бекапов - Автоочистка архивов старше 7 дней (настраивается) - Переключатель LOG_ROTATION_ENABLED (по умолчанию выключен)
55 lines
1.9 KiB
Python
55 lines
1.9 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
|
||
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
|