import logging import sys from pythonjsonlogger import jsonlogger from datetime import datetime from app.core.config import settings def setup_logger(name: str = __name__) -> logging.Logger: """ 设置和配置日志记录器,使用JSON格式输出 Args: name (str): 日志记录器名称,默认为模块名 Returns: logging.Logger: 配置好的日志记录器实例 """ # 创建日志记录器 logger = logging.getLogger(name) logger.setLevel(getattr(logging, settings.LOG_LEVEL)) # 创建控制台处理器 console_handler = logging.StreamHandler(sys.stdout) console_handler.setLevel(getattr(logging, settings.LOG_LEVEL)) # 创建JSON格式化器,包含更多详细信息 formatter = jsonlogger.JsonFormatter( settings.LOG_FORMAT, datefmt='%Y-%m-%d %H:%M:%S' ) console_handler.setFormatter(formatter) # 添加处理器到日志记录器 logger.addHandler(console_handler) # 防止日志重复 logger.propagate = False return logger # 创建默认日志记录器实例 logger = setup_logger('langchain-ollama')