loglinklogic.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. // Code scaffolded by goctl. Safe to edit.
  2. // goctl 1.10.2
  3. package systemlog
  4. import (
  5. "context"
  6. "udeServer/internal/apierr"
  7. "udeServer/internal/log"
  8. "udeServer/internal/svc"
  9. "udeServer/internal/types"
  10. "github.com/zeromicro/go-zero/core/logx"
  11. )
  12. type LogLinkLogic struct {
  13. logx.Logger
  14. ctx context.Context
  15. svcCtx *svc.ServiceContext
  16. }
  17. // 查看完整链路
  18. func NewLogLinkLogic(ctx context.Context, svcCtx *svc.ServiceContext) *LogLinkLogic {
  19. return &LogLinkLogic{
  20. Logger: logx.WithContext(ctx),
  21. ctx: ctx,
  22. svcCtx: svcCtx,
  23. }
  24. }
  25. // LogLink returns every log entry of one trace, ordered for display.
  26. func (l *LogLinkLogic) LogLink(req *types.SystemLogLinkReq) (*types.SystemLogLinkResp, error) {
  27. if req.TraceId == "" {
  28. return nil, apierr.BadRequest("traceId 不能为空")
  29. }
  30. list, err := l.svcCtx.SystemLogModel.FindByTraceId(l.ctx, req.TraceId)
  31. if err != nil {
  32. log.RecordError(l.ctx, err)
  33. return nil, apierr.New(500, "查询日志链路失败")
  34. }
  35. logs := make([]types.SystemLog, len(list))
  36. for i := range list {
  37. logs[i] = ConvertToSystemLog(&list[i])
  38. }
  39. return &types.SystemLogLinkResp{LogLinks: logs}, nil
  40. }