From 0f5220be2c91f086bc4fba5a71cd9649378b6050 Mon Sep 17 00:00:00 2001 From: Yuki Furuyama Date: Mon, 19 Sep 2022 09:24:53 +0900 Subject: [PATCH] Fix #3, also fix non-pointer bug caused by https://github.com/rs/zerolog/pull/409 --- go.mod | 7 +++++-- go.sum | 18 ++++++++++++++++++ grpc.go | 6 +++--- http.go | 7 ++++--- 4 files changed, 30 insertions(+), 8 deletions(-) diff --git a/go.mod b/go.mod index 679952f..581ab78 100644 --- a/go.mod +++ b/go.mod @@ -3,12 +3,15 @@ module github.com/yfuruyama/crzerolog go 1.13 require ( + github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e // indirect github.com/golang/protobuf v1.3.4 // indirect github.com/google/go-cmp v0.4.0 - github.com/rs/zerolog v1.18.0 + github.com/rs/xid v1.4.0 // indirect + github.com/rs/zerolog v1.28.1-0.20220918145356-55aaf043cf4d + github.com/zenazn/goji v0.9.0 // indirect golang.org/x/net v0.0.0-20200301022130-244492dfa37a // indirect - golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527 // indirect golang.org/x/text v0.3.2 // indirect + golang.org/x/tools v0.0.0-20190828213141-aed303cbaa74 // indirect google.golang.org/genproto v0.0.0-20200306153348-d950eab6f860 // indirect google.golang.org/grpc v1.27.1 ) diff --git a/go.sum b/go.sum index 4e9b4f9..10633c2 100644 --- a/go.sum +++ b/go.sum @@ -3,8 +3,10 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03 github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= @@ -16,12 +18,25 @@ github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaW github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/mattn/go-colorable v0.1.12 h1:jF+Du6AlPIjs2BiUiQlKOX0rt3SujHxPnksPKZbaA40= +github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= +github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y= +github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/rs/xid v1.2.1 h1:mhH9Nq+C1fY2l1XIpgxIiUOfNpRBYH1kKcr+qfKgjRc= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= +github.com/rs/xid v1.3.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= +github.com/rs/xid v1.4.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/rs/zerolog v1.18.0 h1:CbAm3kP2Tptby1i9sYy2MGRg0uxIN9cyDb59Ys7W8z8= github.com/rs/zerolog v1.18.0/go.mod h1:9nvC1axdVrAHcu/s9taAVfBuIdTZLVQmKQyvrUjF5+I= +github.com/rs/zerolog v1.26.2-0.20220219153918-361cdf616a3c h1:HQF+zKfl4KbHmrcmdiLxdX1+QisaDF9IsTz6pkkhSAo= +github.com/rs/zerolog v1.26.2-0.20220219153918-361cdf616a3c/go.mod h1:7frBqO0oezxmnO7GF86FY++uy8I0Tk/If5ni1G9Qc0U= +github.com/rs/zerolog v1.26.2-0.20220224001711-588a61c2df4b h1:CditrETsnEKj/7N/eOgYk6Zgrx1U0lWnr5iygbqFGOY= +github.com/rs/zerolog v1.26.2-0.20220224001711-588a61c2df4b/go.mod h1:7frBqO0oezxmnO7GF86FY++uy8I0Tk/If5ni1G9Qc0U= +github.com/rs/zerolog v1.28.1-0.20220918145356-55aaf043cf4d h1:lP1/roztIMNZCqcqXeV47Uaj3f+aqpml2LMQrKLxeGo= +github.com/rs/zerolog v1.28.1-0.20220918145356-55aaf043cf4d/go.mod h1:NILgTygv/Uej1ra5XxGf82ZFSLk58MFGAUS2o6usyD0= github.com/zenazn/goji v0.9.0 h1:RSQQAbXGArQ0dIDEq+PI6WqN6if+5KHu6x2Cx/GXLTQ= github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= @@ -46,6 +61,9 @@ golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527 h1:uYVVQ9WP/Ds2ROhcaGPeIdVq0RIXVLwsHlnvJ+cT1So= golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6 h1:foEbQz/B0Oz6YIqu/69kfXPYeFQAuuMYFkjaqXzl5Wo= +golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= diff --git a/grpc.go b/grpc.go index 7090def..68c511f 100644 --- a/grpc.go +++ b/grpc.go @@ -5,6 +5,7 @@ import ( "fmt" "github.com/rs/zerolog" + "github.com/rs/zerolog/log" "google.golang.org/grpc" "google.golang.org/grpc/metadata" ) @@ -12,8 +13,7 @@ import ( // InjectLoggerInterceptor returns a gRPC unary interceptor for injecting zerolog.Logger to the RPC invocation context. func InjectLoggerInterceptor(rootLogger *zerolog.Logger) grpc.UnaryServerInterceptor { return func(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (resp interface{}, err error) { - l := rootLogger.With().Timestamp().Logger().Hook(sourceLocationHook) - ctx = l.WithContext(ctx) + ctx = rootLogger.With().Timestamp().Logger().Hook(sourceLocationHook).WithContext(ctx) md, ok := metadata.FromIncomingContext(ctx) if !ok { @@ -30,7 +30,7 @@ func InjectLoggerInterceptor(rootLogger *zerolog.Logger) grpc.UnaryServerInterce } trace := fmt.Sprintf("projects/%s/traces/%s", projectID, traceID) - l.UpdateContext(func(c zerolog.Context) zerolog.Context { + log.Ctx(ctx).UpdateContext(func(c zerolog.Context) zerolog.Context { return c.Str("logging.googleapis.com/trace", trace) }) diff --git a/http.go b/http.go index 8ad1abe..0c137ed 100644 --- a/http.go +++ b/http.go @@ -5,6 +5,7 @@ import ( "net/http" "github.com/rs/zerolog" + "github.com/rs/zerolog/log" ) // middleware implements http.Handler interface. @@ -22,8 +23,8 @@ func InjectLogger(rootLogger *zerolog.Logger) func(http.Handler) http.Handler { // ServeHTTP injects zerolog.Logger to the http context and calls the next handler. func (m *middleware) ServeHTTP(w http.ResponseWriter, r *http.Request) { - l := m.rootLogger.With().Timestamp().Logger().Hook(sourceLocationHook) - r = r.WithContext(l.WithContext(r.Context())) + ctx := m.rootLogger.With().Timestamp().Logger().Hook(sourceLocationHook).WithContext(r.Context()) + r = r.WithContext(ctx) traceID, _ := traceContextFromHeader(r.Header.Get("X-Cloud-Trace-Context")) if traceID == "" { @@ -32,7 +33,7 @@ func (m *middleware) ServeHTTP(w http.ResponseWriter, r *http.Request) { } trace := fmt.Sprintf("projects/%s/traces/%s", projectID, traceID) - l.UpdateContext(func(c zerolog.Context) zerolog.Context { + log.Ctx(ctx).UpdateContext(func(c zerolog.Context) zerolog.Context { return c.Str("logging.googleapis.com/trace", trace) })