From de1fc2f58bc9f8fb68b32b19fd0eb46b146d2173 Mon Sep 17 00:00:00 2001 From: Koen Bollen Date: Fri, 11 Aug 2023 16:36:39 +0200 Subject: [PATCH 1/4] Add example test for log/slog. --- .github/workflows/cram.yaml | 2 +- examples/mocks/slog_example/main.go | 13 +++++++++++++ examples/slog.md | 9 +++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 examples/mocks/slog_example/main.go create mode 100644 examples/slog.md diff --git a/.github/workflows/cram.yaml b/.github/workflows/cram.yaml index 90bb20c..6d36873 100644 --- a/.github/workflows/cram.yaml +++ b/.github/workflows/cram.yaml @@ -17,7 +17,7 @@ jobs: go-version: '1.20' - uses: actions/checkout@v3 - run: pip install cram - - run: go install + - run: go install ./... - name: test examples run: | cd examples diff --git a/examples/mocks/slog_example/main.go b/examples/mocks/slog_example/main.go new file mode 100644 index 0000000..586df51 --- /dev/null +++ b/examples/mocks/slog_example/main.go @@ -0,0 +1,13 @@ +package main + +import ( + "io" + "log/slog" + "os" +) + +func main() { + logger := slog.New(slog.NewJSONHandler(os.Stdout, nil)) + logger.Info("hello", "count", 3) + logger.Warn("failed", "err", io.EOF) +} diff --git a/examples/slog.md b/examples/slog.md new file mode 100644 index 0000000..d5f793e --- /dev/null +++ b/examples/slog.md @@ -0,0 +1,9 @@ +# Go's log/slog json handler + + $ slog_example + {"time":"2023-08-11T16:35:31.162712808+02:00","level":"INFO","msg":"hello","count":3} + {"time":"2023-08-11T16:35:31.162796194+02:00","level":"WARN","msg":"failed","err":"EOF"} + + $ slog_example | jl + [2023-08-11 16:34:29] INFO: hello [count=3] + [2023-08-11 16:34:29] WARNING: failed [err=EOF] From 6d08de7553a78de9ffb7bfd1fd2a4daa8dc86e60 Mon Sep 17 00:00:00 2001 From: Koen Bollen Date: Fri, 11 Aug 2023 16:39:29 +0200 Subject: [PATCH 2/4] Update CI to Go 1.21. --- .github/workflows/cram.yaml | 2 +- .github/workflows/golang.yaml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/cram.yaml b/.github/workflows/cram.yaml index 6d36873..b40cde8 100644 --- a/.github/workflows/cram.yaml +++ b/.github/workflows/cram.yaml @@ -14,7 +14,7 @@ jobs: python-version: '3.10' - uses: actions/setup-go@v4 with: - go-version: '1.20' + go-version: '1.21' - uses: actions/checkout@v3 - run: pip install cram - run: go install ./... diff --git a/.github/workflows/golang.yaml b/.github/workflows/golang.yaml index 54feefe..8239f8b 100644 --- a/.github/workflows/golang.yaml +++ b/.github/workflows/golang.yaml @@ -11,7 +11,7 @@ jobs: steps: - uses: actions/setup-go@v4 with: - go-version: '1.20' + go-version: '1.21' - uses: actions/checkout@v3 - run: go version - run: go mod verify @@ -22,7 +22,7 @@ jobs: steps: - uses: actions/setup-go@v4 with: - go-version: '1.20' + go-version: '1.21' - uses: actions/checkout@v3 - name: golangci-lint uses: golangci/golangci-lint-action@v3 From aa94d2b1b052ebbd577e9a48c06acfb16bcf91a5 Mon Sep 17 00:00:00 2001 From: Koen Bollen Date: Fri, 11 Aug 2023 16:42:25 +0200 Subject: [PATCH 3/4] Update golangci-lint to v1.54.1. --- .github/workflows/golang.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/golang.yaml b/.github/workflows/golang.yaml index 8239f8b..198e070 100644 --- a/.github/workflows/golang.yaml +++ b/.github/workflows/golang.yaml @@ -27,4 +27,4 @@ jobs: - name: golangci-lint uses: golangci/golangci-lint-action@v3 with: - version: v1.53.2 + version: v1.54.1 From 40d19d165444b2337286bdbda4b697f8605bc491 Mon Sep 17 00:00:00 2001 From: Koen Bollen Date: Fri, 11 Aug 2023 16:57:38 +0200 Subject: [PATCH 4/4] Fix time for test. --- examples/mocks/slog_example/main.go | 11 ++++++++++- examples/slog.md | 8 ++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/examples/mocks/slog_example/main.go b/examples/mocks/slog_example/main.go index 586df51..420de24 100644 --- a/examples/mocks/slog_example/main.go +++ b/examples/mocks/slog_example/main.go @@ -4,10 +4,19 @@ import ( "io" "log/slog" "os" + "time" ) func main() { - logger := slog.New(slog.NewJSONHandler(os.Stdout, nil)) + logger := slog.New(slog.NewJSONHandler(os.Stdout, &slog.HandlerOptions{ReplaceAttr: FixedTime})) logger.Info("hello", "count", 3) logger.Warn("failed", "err", io.EOF) } + +func FixedTime(groups []string, a slog.Attr) slog.Attr { + if a.Key == slog.TimeKey && len(groups) == 0 { + t, _ := time.Parse(time.DateTime, time.DateTime) + a.Value = slog.TimeValue(t) + } + return a +} diff --git a/examples/slog.md b/examples/slog.md index d5f793e..d5831e2 100644 --- a/examples/slog.md +++ b/examples/slog.md @@ -1,9 +1,9 @@ # Go's log/slog json handler $ slog_example - {"time":"2023-08-11T16:35:31.162712808+02:00","level":"INFO","msg":"hello","count":3} - {"time":"2023-08-11T16:35:31.162796194+02:00","level":"WARN","msg":"failed","err":"EOF"} + {"time":"2006-01-02T15:04:05Z","level":"INFO","msg":"hello","count":3} + {"time":"2006-01-02T15:04:05Z","level":"WARN","msg":"failed","err":"EOF"} $ slog_example | jl - [2023-08-11 16:34:29] INFO: hello [count=3] - [2023-08-11 16:34:29] WARNING: failed [err=EOF] + [2006-01-02 15:04:05] INFO: hello [count=3] + [2006-01-02 15:04:05] WARNING: failed [err=EOF]