From d16d355ff80fc2ca32b7e550bae4d1f1a09f2692 Mon Sep 17 00:00:00 2001 From: Steven Allen Date: Wed, 3 Oct 2018 10:39:13 -0700 Subject: [PATCH] correctly display the line number when FinishWithErr fails --- log.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/log.go b/log.go index e570561..2a467d1 100644 --- a/log.go +++ b/log.go @@ -228,10 +228,10 @@ func (el *eventLogger) SetTags(ctx context.Context, tags map[string]interface{}) } } -func (el *eventLogger) SetErr(ctx context.Context, err error) { +func (el *eventLogger) setErr(ctx context.Context, err error, skip int) { span := opentrace.SpanFromContext(ctx) if span == nil { - _, file, line, _ := runtime.Caller(1) + _, file, line, _ := runtime.Caller(skip) log.Errorf("SetErr with no Span in context called on %s:%d", path.Base(file), line) return } @@ -243,6 +243,10 @@ func (el *eventLogger) SetErr(ctx context.Context, err error) { span.LogKV("error", err.Error()) } +func (el *eventLogger) SetErr(ctx context.Context, err error) { + el.setErr(ctx, err, 1) +} + func (el *eventLogger) Finish(ctx context.Context) { span := opentrace.SpanFromContext(ctx) if span == nil { @@ -254,7 +258,7 @@ func (el *eventLogger) Finish(ctx context.Context) { } func (el *eventLogger) FinishWithErr(ctx context.Context, err error) { - el.SetErr(ctx, err) + el.setErr(ctx, err, 2) el.Finish(ctx) }