[agent/codex:gpt-5.4-mini] Read ~/spec/code/core/go/log/RFC.md fully. Find ONE feature ... #18

Merged
Virgil merged 1 commit from agent/read---spec-code-core-go-log-rfc-md-full into dev 2026-04-01 08:58:43 +00:00
2 changed files with 20 additions and 3 deletions

View file

@ -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)
}
}

View file

@ -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})