You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 lines
1.1 KiB

1 month ago
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')