69 lines
1.8 KiB
Python
69 lines
1.8 KiB
Python
"""统一日志配置模块"""
|
||
import logging
|
||
import os
|
||
from datetime import datetime
|
||
|
||
def setup_logging(logger_name, log_filename=None):
|
||
"""
|
||
设置统一的文件日志配置
|
||
|
||
Args:
|
||
logger_name: logger名称
|
||
log_filename: 日志文件名,如果不提供则使用logger_name
|
||
|
||
Returns:
|
||
configured logger: 配置好的logger
|
||
"""
|
||
# 创建日志目录
|
||
log_dir = "logs"
|
||
if not os.path.exists(log_dir):
|
||
os.makedirs(log_dir)
|
||
|
||
# 设置日志文件名
|
||
if log_filename is None:
|
||
log_filename = f"{logger_name}.log"
|
||
|
||
log_file = os.path.join(log_dir, log_filename)
|
||
|
||
# 配置文件处理器
|
||
file_handler = logging.FileHandler(log_file, encoding='utf-8')
|
||
file_handler.setLevel(logging.INFO)
|
||
|
||
# 设置日志格式
|
||
formatter = logging.Formatter(
|
||
'%(asctime)s - %(name)s - %(levelname)s - %(message)s',
|
||
datefmt='%Y-%m-%d %H:%M:%S'
|
||
)
|
||
file_handler.setFormatter(formatter)
|
||
|
||
# 获取或创建logger
|
||
logger = logging.getLogger(logger_name)
|
||
|
||
# 避免重复添加handler
|
||
if not logger.handlers:
|
||
logger.addHandler(file_handler)
|
||
logger.setLevel(logging.INFO)
|
||
|
||
return logger
|
||
|
||
def get_logger(logger_name):
|
||
"""获取配置好的logger"""
|
||
return setup_logging(logger_name)
|
||
|
||
# 全局日志配置
|
||
def setup_global_logging():
|
||
"""设置全局应用日志"""
|
||
# 应用主日志
|
||
app_logger = setup_logging('app', 'app_main.log')
|
||
|
||
# Celery日志
|
||
celery_logger = setup_logging('celery', 'celery_app.log')
|
||
|
||
# 任务日志
|
||
task_logger = setup_logging('call_api_task', 'call_api_tasks.log')
|
||
|
||
return {
|
||
'app': app_logger,
|
||
'celery': celery_logger,
|
||
'call_api_task': task_logger
|
||
} |