61 lines
1.6 KiB
Python
Raw Normal View History

2025-03-17 14:58:05 +08:00
# utils/logger.py
import logging
import os
from logging.handlers import RotatingFileHandler
from config.settings import LogConfig
def setup_logger():
"""设置日志"""
# 获取日志配置
LOG_CONFIG = LogConfig.as_dict()
# 创建日志目录
log_dir = os.path.dirname(LOG_CONFIG["file"])
if not os.path.exists(log_dir):
os.makedirs(log_dir)
# 设置日志级别
log_level = getattr(logging, LOG_CONFIG["level"].upper(), logging.INFO)
# 设置日志格式
log_format = logging.Formatter(LOG_CONFIG["format"])
# 创建根日志记录器
root_logger = logging.getLogger()
root_logger.setLevel(log_level)
# 清除现有处理器
for handler in root_logger.handlers[:]:
root_logger.removeHandler(handler)
# 添加控制台处理器
console_handler = logging.StreamHandler()
console_handler.setFormatter(log_format)
root_logger.addHandler(console_handler)
# 添加文件处理器
file_handler = RotatingFileHandler(
LOG_CONFIG["file"],
maxBytes=10 * 1024 * 1024, # 10MB
backupCount=5
)
file_handler.setFormatter(log_format)
root_logger.addHandler(file_handler)
# 设置第三方库的日志级别
logging.getLogger("werkzeug").setLevel(logging.WARNING)
logging.getLogger("urllib3").setLevel(logging.WARNING)
return root_logger
def get_logger(name):
"""
获取指定名称的日志记录器
Args:
name (str): 日志记录器名称通常为模块名称
Returns:
logging.Logger: 日志记录器实例
"""
return logging.getLogger(name)