在 Manus 中运行任何 Skill
一键导入
一键导入
一键在 Manus 中运行任何 Skill
开始使用gateway-logging
星标8
分支0
更新时间2026年2月22日 13:10
API 网关日志编写规范。在域服务、中间件、基础设施层编写日志代码时自动加载。
安装
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
SKILL.md
readonly菜单
API 网关日志编写规范。在域服务、中间件、基础设施层编写日志代码时自动加载。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
根据错误信息进行分类诊断,定位根因并给出修复方案
创建新业务领域模块骨架(Model→DAL→Converter→Logic→Wire)
添加新 HTTP 端点(IDL→网关层全流程)
端到端添加新 RPC 接口(IDL→全层实现)
代码质量检查(编译、Lint、测试覆盖率、架构合规)
执行代码生成(Kitex/Hertz/Wire,支持自动检测)
| name | gateway-logging |
| description | API 网关日志编写规范。在域服务、中间件、基础设施层编写日志代码时自动加载。 |
在 API 网关层编写日志代码时,必须遵循以下规范。
tracelog 包 (pkg/log/trace_logger.go)s.Logger() 的 printf 风格 API(已废弃)使用 s.Log(ctx) 获取带追踪信息的 *zerolog.Logger:
s.Log(ctx).Error().Err(err).Msg("调用 RPC 服务失败")
s.Log(ctx).Info().Str("patient_id", id).Msg("操作成功")
s.Log(ctx).Warn().Msg("参数缺失")
使用 *zerolog.Logger + tracelog.Event(ctx, ...):
import tracelog "gitlab.manteia.com/radius/radius-backend/api/radius-api-gateway/pkg/log"
tracelog.Event(ctx, m.logger.Warn()).
Str("component", "jwt_middleware").
Msg("Token 已吊销")
OTelHook (pkg/log/otel_hook.go) 会根据日志级别自动同步到 Jaeger Span:
Error → span.RecordError() + span.SetStatus(Error) → Jaeger Span 标红Warn → span.AddEvent() → Jaeger Span 详情中可见(不标红)Info/Debug → 仅写日志文件,不影响 Span因此:
Warn(不要用 Error,否则 Jaeger Span 会被误标红)ErrorInfoDebug禁止直接使用不带 ctx 的 logger 调用(如 m.logger.Warn().Msg(...)),OTelHook 依赖 e.GetCtx() 获取 context,不传 ctx 则追踪字段和 Jaeger 联动均失效。
.Err(err)(不用 .Str("error", ...)).Str("key", val).Int("key", val).Str("component", "xxx_middleware")doc/01-开发规范/API网关日志编写规范.mdapi/radius_api_gateway/pkg/log/otel_hook.goapi/radius_api_gateway/pkg/log/trace_logger.goapplication/middleware/error_middleware/error_middleware.go