summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/gobang.go8
-rw-r--r--tests/gobang.go20
2 files changed, 24 insertions, 4 deletions
diff --git a/src/gobang.go b/src/gobang.go
index eec94b0..a8707a1 100644
--- a/src/gobang.go
+++ b/src/gobang.go
@@ -754,7 +754,7 @@ func AssertEqualI(i int, given any, expected any) {
}
var unfilteringLevel = new(slog.LevelVar)
-func setLoggerOutput(w io.Writer) {
+func setLoggerOutput(w io.Writer, args ...any) {
unfilteringLevel.Set(slog.LevelDebug)
slog.SetDefault(slog.New(slog.NewJSONHandler(w, &slog.HandlerOptions {
Level: unfilteringLevel,
@@ -765,7 +765,7 @@ func setLoggerOutput(w io.Writer) {
"ppid", os.Getppid(),
"puuid", NewUUID().String(),
),
- ))
+ ).With(args...))
}
func levelFromString(name string, fallback logLevel) logLevel {
@@ -833,8 +833,8 @@ func setHostname() {
FatalIf(err)
}
-func Init() {
- setLoggerOutput(os.Stdout)
+func Init(args ...any) {
+ setLoggerOutput(os.Stdout, args...)
setLogLevel()
setMetric()
setTraceback()
diff --git a/tests/gobang.go b/tests/gobang.go
index 842b95a..ef07271 100644
--- a/tests/gobang.go
+++ b/tests/gobang.go
@@ -1042,6 +1042,26 @@ func test_setLoggerOutput() {
ErrorIf(err)
})
+ Testing("we can add groups to the default logger", func() {
+ s := new(strings.Builder)
+ setLoggerOutput(s, slog.Group("one", "key", "value"))
+ Info("", "")
+
+ var data map[string]interface{}
+ err := json.Unmarshal([]byte(s.String()), &data)
+ ErrorIf(err)
+
+ oneRaw, ok := data["one"]
+ AssertEqual(ok, true)
+ one, ok := oneRaw.(map[string]interface{})
+ AssertEqual(ok, true)
+
+ keyRaw, ok := one["key"]
+ AssertEqual(ok, true)
+ key, ok := keyRaw.(string)
+ AssertEqual(key, "value")
+ })
+
Testing("the puuid is the same across calls to the logger", func() {
s := new(strings.Builder)
setLoggerOutput(s)