diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 50430ea..746a876 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -13,7 +13,7 @@ jobs: steps: - uses: actions/setup-go@v2 with: - go-version: 1.20.3 + go-version: 1.21 stable: false - uses: actions/checkout@v2 - name: golangci-lint @@ -41,4 +41,4 @@ jobs: # skip-build-cache: true # optionally use a specific version of Go rather than the latest one - go_version: '1.20.3' + go_version: '1.21' diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 798e403..f9fadc8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -18,7 +18,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v2 with: - go-version: 1.20.3 + go-version: 1.21 stable: false - name: Test diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a004c74..5000529 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -16,7 +16,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v2 with: - go-version: 1.20.3 + go-version: 1.21 stable: false - name: Build diff --git a/README.md b/README.md index 9bd2c06..be74602 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ # slog: Gin middleware [![tag](https://img.shields.io/github/tag/samber/slog-gin.svg)](https://github.com/samber/slog-gin/releases) -![Go Version](https://img.shields.io/badge/Go-%3E%3D%201.20.3-%23007d9c) +![Go Version](https://img.shields.io/badge/Go-%3E%3D%201.21-%23007d9c) [![GoDoc](https://godoc.org/github.com/samber/slog-gin?status.svg)](https://pkg.go.dev/github.com/samber/slog-gin) ![Build Status](https://github.com/samber/slog-gin/actions/workflows/test.yml/badge.svg) [![Go report](https://goreportcard.com/badge/github.com/samber/slog-gin)](https://goreportcard.com/report/github.com/samber/slog-gin) @@ -10,7 +10,7 @@ [![Contributors](https://img.shields.io/github/contributors/samber/slog-gin)](https://github.com/samber/slog-gin/graphs/contributors) [![License](https://img.shields.io/github/license/samber/slog-gin)](./LICENSE) -[Gin](https://github.com/gin-gonic/gin) middleware to log http requests using [slog](https://pkg.go.dev/golang.org/x/exp/slog). +[Gin](https://github.com/gin-gonic/gin) middleware to log http requests using [slog](https://pkg.go.dev/log/slog). **See also:** @@ -41,11 +41,9 @@ go get github.com/samber/slog-gin ``` -**Compatibility**: go >= 1.20.3 +**Compatibility**: go >= 1.21 -This library is v0 and follows SemVer strictly. On `slog` final release (go 1.21), this library will go v1. - -No breaking changes will be made to exported APIs before v1.0.0. +No breaking changes will be made to exported APIs before v2.0.0. ## 💡 Usage @@ -55,7 +53,7 @@ No breaking changes will be made to exported APIs before v1.0.0. import ( "github.com/gin-gonic/gin" sloggin "github.com/samber/slog-gin" - "golang.org/x/exp/slog" + "log/slog" ) // Create a slog logger, which: @@ -86,7 +84,7 @@ import ( "github.com/gin-gonic/gin" sloggin "github.com/samber/slog-gin" slogformatter "github.com/samber/slog-formatter" - "golang.org/x/exp/slog" + "log/slog" ) // Create a slog logger, which: @@ -124,7 +122,7 @@ router.Run(":1234") import ( "github.com/gin-gonic/gin" sloggin "github.com/samber/slog-gin" - "golang.org/x/exp/slog" + "log/slog" ) // Create a slog logger, which: @@ -154,7 +152,7 @@ router.Run(":1234") import ( "github.com/gin-gonic/gin" sloggin "github.com/samber/slog-gin" - "golang.org/x/exp/slog" + "log/slog" ) // Create a slog logger, which: @@ -181,7 +179,7 @@ router.Run(":1234") import ( "github.com/gin-gonic/gin" sloggin "github.com/samber/slog-gin" - "golang.org/x/exp/slog" + "log/slog" ) // Create a slog logger, which: @@ -215,7 +213,7 @@ router.Run(":1234") import ( "github.com/gin-gonic/gin" sloggin "github.com/samber/slog-gin" - "golang.org/x/exp/slog" + "log/slog" ) // Create a slog logger, which: diff --git a/examples/example.go b/examples/example.go index 2c9f625..e794035 100644 --- a/examples/example.go +++ b/examples/example.go @@ -5,10 +5,11 @@ import ( "os" "time" + "log/slog" + "github.com/gin-gonic/gin" slogformatter "github.com/samber/slog-formatter" sloggin "github.com/samber/slog-gin" - "golang.org/x/exp/slog" ) func main() { diff --git a/go.mod b/go.mod index c40a2bd..4686f52 100644 --- a/go.mod +++ b/go.mod @@ -1,8 +1,8 @@ module github.com/samber/slog-gin -go 1.20 +go 1.21 -require golang.org/x/exp v0.0.0-20230522175609-2e198f4a06a1 +require golang.org/x/exp v0.0.0-20230522175609-2e198f4a06a1 // indirect require ( github.com/bytedance/sonic v1.9.1 // indirect @@ -22,7 +22,7 @@ require ( github.com/modern-go/reflect2 v1.0.2 // indirect github.com/pelletier/go-toml/v2 v2.0.8 // indirect github.com/samber/lo v1.38.1 // indirect - github.com/samber/slog-multi v0.6.0 // indirect + github.com/samber/slog-multi v1.0.0 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/ugorji/go/codec v1.2.11 // indirect golang.org/x/arch v0.3.0 // indirect @@ -37,6 +37,6 @@ require ( require ( github.com/gin-gonic/gin v1.9.1 github.com/google/uuid v1.3.0 - github.com/samber/slog-formatter v0.6.0 + github.com/samber/slog-formatter v1.0.0 go.uber.org/goleak v1.2.1 ) diff --git a/go.sum b/go.sum index 56e3cfd..10eefc7 100644 --- a/go.sum +++ b/go.sum @@ -15,6 +15,7 @@ github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm github.com/gin-gonic/gin v1.9.1 h1:4idEAncQnU5cB7BeOkPtxjfCSye0AAm1R0RVIqJ+Jmg= github.com/gin-gonic/gin v1.9.1/go.mod h1:hPrL7YrpYKXt5YId3A/Tnip5kqbEAP+KLuI3SUcPTeU= github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= +github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= @@ -26,6 +27,7 @@ github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MG github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= +github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -35,6 +37,7 @@ github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa02 github.com/klauspost/cpuid/v2 v2.2.4 h1:acbojRNwl3o09bUq+yDCtZFc1aiwaAAxtcn8YkZXnvk= github.com/klauspost/cpuid/v2 v2.2.4/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/leodido/go-urn v1.2.4 h1:XlAE/cm/ms7TE/VMVoduSpNBoyc2dOxHs5MZSwAN63Q= @@ -52,10 +55,10 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/samber/lo v1.38.1 h1:j2XEAqXKb09Am4ebOg31SpvzUTTs6EN3VfgeLUhPdXM= github.com/samber/lo v1.38.1/go.mod h1:+m/ZKRl6ClXCE2Lgf3MsQlWfh4bn1bz6CXEOxnEXnEA= -github.com/samber/slog-formatter v0.6.0 h1:YMckBY83lGHmjuisOXVKlw9s3pMcW8MVZ85bZzF2zgs= -github.com/samber/slog-formatter v0.6.0/go.mod h1:4uQJIgEMCFy7wGiQY3G+ZASGL/I6641FTwqqg2f+lIo= -github.com/samber/slog-multi v0.6.0 h1:PlkNfE+4HlDz32PdZvVfofEwndsf6Hkjo+SiHdnVZf8= -github.com/samber/slog-multi v0.6.0/go.mod h1:tframyieOY2ATooyXYheljn9FzBCAz+gGxpwWWvtVfg= +github.com/samber/slog-formatter v1.0.0 h1:ULxHV+jNqi6aFP8xtzGHl2ejFRMl2+jI2UhCpgoXTDA= +github.com/samber/slog-formatter v1.0.0/go.mod h1:c7pRfwhCfZQNzJz+XirmTveElxXln7M0Y8Pq781uxlo= +github.com/samber/slog-multi v1.0.0 h1:snvP/P5GLQ8TQh5WSqdRaxDANW8AAA3egwEoytLsqvc= +github.com/samber/slog-multi v1.0.0/go.mod h1:uLAvHpGqbYgX4FSL0p1ZwoLuveIAJvBECtE07XmYvFo= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= @@ -94,6 +97,7 @@ google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cn google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/middleware.go b/middleware.go index dfc7092..014f960 100644 --- a/middleware.go +++ b/middleware.go @@ -5,9 +5,10 @@ import ( "net/http" "time" + "log/slog" + "github.com/gin-gonic/gin" "github.com/google/uuid" - "golang.org/x/exp/slog" ) const requestIDCtx = "slog-gin.request-id"