// Code scaffolded by goctl. Safe to edit. // goctl 1.10.2 package systemlog import ( "context" "udeServer/internal/apierr" "udeServer/internal/log" "udeServer/internal/svc" "udeServer/internal/types" "github.com/zeromicro/go-zero/core/logx" ) type LogLinkLogic struct { logx.Logger ctx context.Context svcCtx *svc.ServiceContext } // 查看完整链路 func NewLogLinkLogic(ctx context.Context, svcCtx *svc.ServiceContext) *LogLinkLogic { return &LogLinkLogic{ Logger: logx.WithContext(ctx), ctx: ctx, svcCtx: svcCtx, } } // LogLink returns every log entry of one trace, ordered for display. func (l *LogLinkLogic) LogLink(req *types.SystemLogLinkReq) (*types.SystemLogLinkResp, error) { if req.TraceId == "" { return nil, apierr.BadRequest("traceId 不能为空") } list, err := l.svcCtx.SystemLogModel.FindByTraceId(l.ctx, req.TraceId) if err != nil { log.RecordError(l.ctx, err) return nil, apierr.New(500, "查询日志链路失败") } logs := make([]types.SystemLog, len(list)) for i := range list { logs[i] = ConvertToSystemLog(&list[i]) } return &types.SystemLogLinkResp{LogLinks: logs}, nil }