feat: 接入 LogHive 远程日志系统
- 添加 LogHiveHandler,启动时自动挂载到 root logger - 所有 logging 日志自动异步发送到 LogHive,不影响主业务 - vendored loghive-client 包,Docker 构建时自动安装 - API Key 缺失时自动跳过,不影响本地开发
This commit is contained in:
@@ -33,6 +33,11 @@ class Settings(BaseSettings):
|
||||
scheduler_enabled: bool = True
|
||||
scheduler_cron: str = "0 8-21 * * *"
|
||||
|
||||
# LogHive 日志系统
|
||||
loghive_endpoint: str = "http://10.10.10.14:8000"
|
||||
loghive_project: str = "gx-gp-notify"
|
||||
loghive_api_key: str = ""
|
||||
|
||||
# Markdown
|
||||
markdown_enabled: bool = True
|
||||
markdown_output_file: str = "onu.md"
|
||||
|
||||
+11
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user