SuperAPI AI 工具集

logging

部署与运维

查看项目

更新于 10-15 19:51

技能介绍

用途:为 .NET 10 应用提供可观测性总览与“胶水”层,说明结构化日志、分布式追踪、健康检查如何组合,并负责本技能自有的横切部分。

主要能力:提供 /health 健康检查端点(区分 liveness 与 readiness)、关联 ID 中间件、日志级别策略。结构化日志由 serilog 技能负责(AddSerilog() 两阶段引导、UseSerilogRequestLogging()),追踪与指标由 opentelemetry 技能负责(OTLP 导出)。

使用方式:先接入日志,再做健康检查,最后接追踪。关联 ID 通过中间件在管道边缘用 LogContext.PushProperty 推入,使请求范围内每条日志都带该属性,并通过 DelegatingHandler 在出站 HttpClient 调用中传播同一请求头。健康检查用 AddHealthChecks() 注册数据库、Redis、RabbitMQ 等依赖并打 ready 标签,再分别映射 /health/live(Predicate = _ => false)与 /health/ready(按 ready 标签过滤)。日志级别建议:开发用 Debug,预发用 Information,生产默认 Warning,业务事件通过命名空间覆盖保留 Information。

适用场景:容器与编排环境下的服务健康探测、跨服务请求追踪、日志检索与告警。

限制与注意:不要在 Information 级别记录密码、PII 等敏感数据;不要跳过健康检查标签,否则慢依赖会导致应用反复重启;不要自行手写 Serilog 引导,应使用 serilog 技能规定的 AddSerilog() 方式。日志存储可选 Seq(开发)与 Elastic/Grafana/OTLP 后端(生产)。