2026-01-25 19:27:44 +08:00

64 lines
1.5 KiB
Python
Raw Permalink 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.

"""
Creative Studio 日志配置
"""
import logging
import sys
from pathlib import Path
from logging.handlers import RotatingFileHandler
from app.config import settings
def setup_logging():
"""配置应用日志"""
# 创建日志目录
log_path = Path(settings.log_file)
log_path.parent.mkdir(parents=True, exist_ok=True)
# 配置根日志记录器
root_logger = logging.getLogger()
root_logger.setLevel(getattr(logging, settings.log_level.upper()))
# 清除现有处理器
root_logger.handlers.clear()
# 日志格式
formatter = logging.Formatter(
'%(asctime)s - %(name)s - %(levelname)s - %(message)s',
datefmt='%Y-%m-%d %H:%M:%S'
)
# 控制台处理器
console_handler = logging.StreamHandler(sys.stdout)
console_handler.setLevel(logging.INFO)
console_handler.setFormatter(formatter)
root_logger.addHandler(console_handler)
# 文件处理器(带轮转)
file_handler = RotatingFileHandler(
settings.log_file,
maxBytes=10 * 1024 * 1024, # 10 MB
backupCount=5,
encoding='utf-8'
)
file_handler.setLevel(getattr(logging, settings.log_level.upper()))
file_handler.setFormatter(formatter)
root_logger.addHandler(file_handler)
def get_logger(name: str) -> logging.Logger:
"""
获取日志记录器
Args:
name: 日志记录器名称(通常使用 __name__
Returns:
配置好的日志记录器
"""
return logging.getLogger(name)
# 初始化日志
setup_logging()