diff --git a/internal/biz/cron_notice.go b/internal/biz/cron_notice.go index 8d062a8..100e37a 100644 --- a/internal/biz/cron_notice.go +++ b/internal/biz/cron_notice.go @@ -116,7 +116,8 @@ func (v *VoucherBiz) timeSliceQuery(ctx context.Context, startTime, endTime time defer func() { if err := recover(); err != nil { - log.Errorf("订单定时通知,发生错误:req:%+v,err:%v", req, err) + _, file, line, _ := runtime.Caller(1) // 1 表示获取当前调用者的调用信息 + log.Errorf("订单定时通知,发生错误:req:%+v,err:%v,file:%s,line:%d", req, err, file, line) } }() @@ -213,7 +214,7 @@ func (v *VoucherBiz) request(ctx context.Context, order *bo.OrderBo, notify *bo. defer func() { if err := recover(); err != nil { _, file, line, _ := runtime.Caller(1) // 1 表示获取当前调用者的调用信息 - respErr = fmt.Errorf("panic:%v, orderNo:%s, file:%s, line:%d", err, order.OrderNo, file, line) + respErr = fmt.Errorf("request panic:%v, orderNo:%s, file:%s, line:%d", err, order.OrderNo, file, line) } }() diff --git a/internal/pkg/timeslice/manager.go b/internal/pkg/timeslice/manager.go index 6ca40b0..1746d6a 100644 --- a/internal/pkg/timeslice/manager.go +++ b/internal/pkg/timeslice/manager.go @@ -5,6 +5,7 @@ import ( "fmt" "github.com/hashicorp/go-multierror" "golang.org/x/sync/errgroup" + "runtime" "sync" "time" ) @@ -94,8 +95,11 @@ func (m *ManagerSrv) process(ctx context.Context, req *Process) error { defer func() { if err := recover(); err != nil { + // 获取调用栈信息 + _, file, line, _ := runtime.Caller(1) // 1 表示获取当前调用者的调用信息 + mu.Lock() - errs = append(errs, fmt.Errorf("任务 %d panic: %v", taskID, err)) + errs = append(errs, fmt.Errorf("任务 %d panic: %v,file:%s, line:%d", taskID, err, file, line)) mu.Unlock() } }()