61 lines
1.6 KiB
Python
61 lines
1.6 KiB
Python
|
# 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)
|