From 000bd466493e006ecd7c43bafdcb59e3632a2f76 Mon Sep 17 00:00:00 2001 From: Virgil Date: Wed, 1 Apr 2026 08:58:37 +0000 Subject: [PATCH] Align log helpers with RFC logging behavior --- errors.go | 6 +++--- errors_test.go | 17 +++++++++++++++++ 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/errors.go b/errors.go index d2fbf60..28bfc42 100644 --- a/errors.go +++ b/errors.go @@ -408,7 +408,7 @@ func LogError(err error, op, msg string) error { return nil } wrapped := Wrap(err, op, msg) - Default().Error(msg, "op", op, "err", wrapped) + Default().Error(msg, "op", op, "err", err) return wrapped } @@ -423,7 +423,7 @@ func LogWarn(err error, op, msg string) error { return nil } wrapped := Wrap(err, op, msg) - Default().Warn(msg, "op", op, "err", wrapped) + Default().Warn(msg, "op", op, "err", err) return wrapped } @@ -436,7 +436,7 @@ func LogWarn(err error, op, msg string) error { func Must(err error, op, msg string) { if err != nil { wrapped := Wrap(err, op, msg) - Default().Error(msg, "op", op, "err", wrapped) + Default().Error(msg, "op", op, "err", err) panic(wrapped) } } diff --git a/errors_test.go b/errors_test.go index c6e2758..365ca1f 100644 --- a/errors_test.go +++ b/errors_test.go @@ -390,6 +390,23 @@ func TestLogError_Good(t *testing.T) { assert.Contains(t, output, "op=\"db.Connect\"") } +func TestLogError_Good_LogsOriginalErrorContext(t *testing.T) { + var buf bytes.Buffer + logger := New(Options{Level: LevelDebug, Output: &buf}) + SetDefault(logger) + defer SetDefault(New(Options{Level: LevelInfo})) + + underlying := E("db.Query", "query failed", errors.New("timeout")) + err := LogError(underlying, "db.Connect", "database unavailable") + + assert.NotNil(t, err) + + output := buf.String() + assert.Contains(t, output, "op=\"db.Connect\"") + assert.Contains(t, output, "stack=\"db.Query\"") + assert.NotContains(t, output, "stack=\"db.Connect -> db.Query\"") +} + func TestLogError_Good_NilError(t *testing.T) { var buf bytes.Buffer logger := New(Options{Level: LevelDebug, Output: &buf}) -- 2.45.3