feat: 接入 LogHive 远程日志系统

- 添加 LogHiveHandler,启动时自动挂载到 root logger
- 所有 logging 日志自动异步发送到 LogHive,不影响主业务
- vendored loghive-client 包,Docker 构建时自动安装
- API Key 缺失时自动跳过,不影响本地开发
This commit is contained in:
2026-05-09 19:14:45 +08:00
parent 1f18d2ec87
commit 2996920277
10 changed files with 583 additions and 1 deletions
+11
View File
@@ -22,6 +22,17 @@ async def lifespan(app: FastAPI):
level=getattr(logging, settings.log_level),
format="%(asctime)s [%(levelname)s] %(name)s: %(message)s",
)
# LogHive 远程日志(仅当配置了 API Key 时启用)
if settings.loghive_api_key:
from loghive_client import LogHiveHandler
handler = LogHiveHandler(
project=settings.loghive_project,
api_key=settings.loghive_api_key,
endpoint=settings.loghive_endpoint,
level=logging.INFO,
)
logging.getLogger().addHandler(handler)
logging.info("LogHive 日志系统已连接")
from app.scheduler.jobs import shutdown_scheduler, start_scheduler
start_scheduler()
yield