mirror of
https://github.com/chainguard-dev/clog
synced 2026-07-06 22:12:46 +00:00
Go 1.24 added [`t.Context()`](https://pkg.go.dev/testing#T.Context), which is presumably more idiomatic to use with clog than our own slogtest package. This PR adds a comment mentioning `t.Context` and demonstrates how to get `t.Context` to have the same behavior as `slogtest.Context(t)`. Without the `slog.SetDefault` the behavior is different: ``` go test -trimpath ./slogtest -run=SlogTest -v === RUN TestSlogTest slogtest.go:36: level=INFO source=github.com/chainguard-dev/clog/slogtest/slogtest_test.go:13 msg="hello world" foo=bar slogtest.go:36: level=INFO source=github.com/chainguard-dev/clog/slogtest/slogtest_test.go:14 msg="me again" bar=baz slogtest.go:36: level=INFO source=github.com/chainguard-dev/clog/slogtest/slogtest_test.go:15 msg="okay last one" baz=true slogtest.go:36: level=DEBUG source=github.com/chainguard-dev/clog/slogtest/slogtest_test.go:17 msg="hello debug" slogtest.go:36: level=INFO source=github.com/chainguard-dev/clog/slogtest/slogtest_test.go:18 msg="hello info" slogtest.go:36: level=WARN source=github.com/chainguard-dev/clog/slogtest/slogtest_test.go:19 msg="hello warn" slogtest.go:36: level=ERROR source=github.com/chainguard-dev/clog/slogtest/slogtest_test.go:20 msg="hello error" slogtest.go:36: level=INFO source=github.com/chainguard-dev/clog/slogtest/another_test.go:9 msg="hello from fn" foo=bar --- PASS: TestSlogTest (0.00s) === RUN TestSlogTestTContext 2025/07/08 12:29:28 INFO hello world foo=bar 2025/07/08 12:29:28 INFO me again bar=baz 2025/07/08 12:29:28 INFO okay last one baz=true 2025/07/08 12:29:28 INFO hello info 2025/07/08 12:29:28 WARN hello warn 2025/07/08 12:29:28 ERROR hello error 2025/07/08 12:29:28 INFO hello from fn foo=bar --- PASS: TestSlogTestTContext (0.00s) PASS ok github.com/chainguard-dev/clog/slogtest 0.211s ``` (debug logs are dropped, no file paths or line numbers, timestamps are added) I don't know whether we should officially deprecate `slogtest` in favor of `clog.FromContext(t.Context())`, but at least this documents an off-ramp. Signed-off-by: Jason Hall <jason@chainguard.dev>
9 lines
178 B
Go
9 lines
178 B
Go
package slogtest_test
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/chainguard-dev/clog"
|
|
)
|
|
|
|
func fn(ctx context.Context) { clog.FromContext(ctx).With("foo", "bar").Infof("hello from fn") }
|