stock-ai-agent/backend/app/utils/logger.py
2026-02-03 10:08:15 +08:00

61 lines
1.4 KiB
Python
Raw 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.

"""
日志工具模块
提供统一的日志配置和记录功能
"""
import logging
import sys
from pathlib import Path
from typing import Optional
def setup_logger(
name: str = "stock_agent",
level: int = logging.INFO,
log_file: Optional[str] = None
) -> logging.Logger:
"""
配置并返回logger实例
Args:
name: logger名称
level: 日志级别
log_file: 日志文件路径(可选)
Returns:
配置好的logger实例
"""
logger = logging.getLogger(name)
logger.setLevel(level)
# 避免重复添加handler
if logger.handlers:
return logger
# 日志格式
formatter = logging.Formatter(
'%(asctime)s - %(name)s - %(levelname)s - %(message)s',
datefmt='%Y-%m-%d %H:%M:%S'
)
# 控制台handler
console_handler = logging.StreamHandler(sys.stdout)
console_handler.setLevel(level)
console_handler.setFormatter(formatter)
logger.addHandler(console_handler)
# 文件handler如果指定
if log_file:
log_path = Path(log_file)
log_path.parent.mkdir(parents=True, exist_ok=True)
file_handler = logging.FileHandler(log_file, encoding='utf-8')
file_handler.setLevel(level)
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)
return logger
# 创建默认logger
logger = setup_logger()