Merge branch 'main' of https://gitee.com/wg123/video-gen
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
import logging
|
||||
import os
|
||||
from datetime import datetime, timedelta
|
||||
from logging.handlers import TimedRotatingFileHandler
|
||||
|
||||
from sqlalchemy import select
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
@@ -13,28 +12,53 @@ from app.services.credits import add_credits
|
||||
from app.utils.id_gen import generate_id, generate_order_no
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Payment logger → logs/payment/YYYY-MM-DD.log (one file per day, keep 30 days)
|
||||
# Payment logger → log/payment/YYYY-MM-DD.log (one file per day, no cleanup)
|
||||
# ---------------------------------------------------------------------------
|
||||
import time as _time
|
||||
|
||||
logger = logging.getLogger("payment")
|
||||
logger.setLevel(logging.INFO)
|
||||
|
||||
_log_dir = os.path.join(os.path.dirname(os.path.dirname(__file__)), "log", "payment")
|
||||
_log_dir = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(__file__))), "log", "payment")
|
||||
os.makedirs(_log_dir, exist_ok=True)
|
||||
|
||||
_file_handler = TimedRotatingFileHandler(
|
||||
os.path.join(_log_dir, "payment.log"),
|
||||
when="midnight",
|
||||
interval=1,
|
||||
backupCount=0,
|
||||
encoding="utf-8",
|
||||
utc=False,
|
||||
|
||||
class DailyFileHandler(logging.FileHandler):
|
||||
"""Write to a file named by date, e.g. log/payment/2026-06-10.log"""
|
||||
|
||||
def __init__(self, directory, encoding="utf-8"):
|
||||
self._directory = directory
|
||||
self._current_date = ""
|
||||
self._file_handler = None
|
||||
super().__init__(self._make_path(), mode="a", encoding=encoding, delay=False)
|
||||
|
||||
def _make_path(self):
|
||||
date_str = _time.strftime("%Y-%m-%d")
|
||||
self._current_date = date_str
|
||||
return os.path.join(self._directory, f"{date_str}.log")
|
||||
|
||||
def emit(self, record):
|
||||
date_str = _time.strftime("%Y-%m-%d")
|
||||
if date_str != self._current_date:
|
||||
# Day rolled over — switch to a new file
|
||||
if self._file_handler:
|
||||
self._file_handler.close()
|
||||
self.baseFilename = self._make_path()
|
||||
self._file_handler = logging.FileHandler(
|
||||
self.baseFilename, mode="a", encoding=self.encoding
|
||||
)
|
||||
_file_handler.suffix = "%Y-%m-%d"
|
||||
_file_handler.setFormatter(logging.Formatter(
|
||||
self._file_handler.setFormatter(self.formatter)
|
||||
self._current_date = date_str
|
||||
self.stream = self._file_handler.stream
|
||||
super().emit(record)
|
||||
|
||||
|
||||
_handler = DailyFileHandler(_log_dir)
|
||||
_handler.setFormatter(logging.Formatter(
|
||||
"[%(asctime)s] %(levelname)s %(message)s", datefmt="%Y-%m-%d %H:%M:%S"
|
||||
))
|
||||
if not logger.handlers:
|
||||
logger.addHandler(_file_handler)
|
||||
logger.addHandler(_handler)
|
||||
|
||||
# Orders pending payment for longer than this are auto-cancelled
|
||||
ORDER_EXPIRE_MINUTES = 5
|
||||
|
||||
Reference in New Issue
Block a user