diff --git a/video-gen-api/app/services/material_consumption_queue.py b/video-gen-api/app/services/material_consumption_queue.py index 1028d7ad..01c6d9f7 100644 --- a/video-gen-api/app/services/material_consumption_queue.py +++ b/video-gen-api/app/services/material_consumption_queue.py @@ -1,6 +1,6 @@ import asyncio -import logging from datetime import datetime, timezone, timedelta +import json from sqlalchemy import select, delete from sqlalchemy.ext.asyncio import AsyncSession @@ -12,39 +12,9 @@ from app.models.user_oauth_account import UserOAuthAccount from app.models.resources_material import ResourcesMaterial from app.utils.id_gen import generate_id from app.utils.douyinApi import DouyinApi +from app.utils.logger import get_logger -import os -import json - -LOG_DIR = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(__file__))), "logs") -os.makedirs(LOG_DIR, exist_ok=True) - -logger = logging.getLogger("material_consumption_task") -logger.setLevel(logging.INFO) - - -class DailyRotatingFileHandler(logging.FileHandler): - def __init__(self, directory, encoding=None): - self.directory = directory - filename = self._get_log_filename() - super().__init__(filename, encoding=encoding) - - def _get_log_filename(self): - return os.path.join(self.directory, f"material_consumption-{datetime.now(timezone.utc).strftime('%Y-%m-%d')}.log") - - def emit(self, record): - current_filename = self._get_log_filename() - if self.baseFilename != current_filename: - self.close() - self.baseFilename = current_filename - self.stream = self._open() - super().emit(record) - - -if not logger.handlers: - handler = DailyRotatingFileHandler(LOG_DIR, encoding="utf-8") - handler.setFormatter(logging.Formatter("%(asctime)s - %(levelname)s - %(message)s", "%Y-%m-%d %H:%M:%S")) - logger.addHandler(handler) +logger = get_logger("material_consumption_task", "material_consumption") douyin_api = DouyinApi() diff --git a/video-gen-api/app/tasks/material_consumption_task.py b/video-gen-api/app/tasks/material_consumption_task.py index 28dd1580..ff75e754 100644 --- a/video-gen-api/app/tasks/material_consumption_task.py +++ b/video-gen-api/app/tasks/material_consumption_task.py @@ -1,39 +1,10 @@ from datetime import datetime, timedelta, timezone import asyncio -import os -import logging from app.services.material_consumption_queue import sync_all_advertisers_consumption +from app.utils.logger import get_logger -LOG_DIR = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(__file__))), "logs") -os.makedirs(LOG_DIR, exist_ok=True) - -logger = logging.getLogger("material_consumption_task") -logger.setLevel(logging.INFO) - - -class DailyRotatingFileHandler(logging.FileHandler): - def __init__(self, directory, encoding=None): - self.directory = directory - filename = self._get_log_filename() - super().__init__(filename, encoding=encoding) - - def _get_log_filename(self): - return os.path.join(self.directory, f"material_consumption_task-{datetime.now(timezone.utc).strftime('%Y-%m-%d')}.log") - - def emit(self, record): - current_filename = self._get_log_filename() - if self.baseFilename != current_filename: - self.close() - self.baseFilename = current_filename - self.stream = self._open() - super().emit(record) - - -if not logger.handlers: - handler = DailyRotatingFileHandler(LOG_DIR, encoding="utf-8") - handler.setFormatter(logging.Formatter("%(asctime)s - %(levelname)s - %(message)s", "%Y-%m-%d %H:%M:%S")) - logger.addHandler(handler) +logger = get_logger("material_consumption_task", "material_consumption_task") async def schedule_daily_sync(): diff --git a/video-gen-api/app/utils/logger.py b/video-gen-api/app/utils/logger.py index 27ae41b5..e54251a6 100644 --- a/video-gen-api/app/utils/logger.py +++ b/video-gen-api/app/utils/logger.py @@ -20,7 +20,9 @@ def get_logger(name: str, log_filename: str) -> logging.Logger: if logger.handlers: return logger - LOG_DIR = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(__file__))), "logs") + LOG_DIR = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(__file__))), "log") + if name: + LOG_DIR = os.path.join(LOG_DIR, name) os.makedirs(LOG_DIR, exist_ok=True) class DailyRotatingFileHandler(logging.FileHandler):