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
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')
|