Skip to content

zerologadapter: Pass the context to logger #77

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion logadapter/zerologadapter/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ module github.com/simukti/sqldb-logger/logadapter/zerologadapter
go 1.17

require (
github.com/rs/zerolog v1.28.0
github.com/rs/zerolog v1.30.0
github.com/simukti/sqldb-logger v0.0.0-20230108154142-840120f68bea
github.com/stretchr/testify v1.8.1
)
Expand Down
8 changes: 4 additions & 4 deletions logadapter/zerologadapter/go.sum
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
Expand All @@ -20,9 +20,9 @@ github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/rs/xid v1.4.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg=
github.com/rs/zerolog v1.28.0 h1:MirSo27VyNi7RJYP3078AA1+Cyzd2GB66qy3aUHvsWY=
github.com/rs/zerolog v1.28.0/go.mod h1:NILgTygv/Uej1ra5XxGf82ZFSLk58MFGAUS2o6usyD0=
github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg=
github.com/rs/zerolog v1.30.0 h1:SymVODrcRsaRaSInD9yQtKbtWqwsfoPcRff/oRXLj4c=
github.com/rs/zerolog v1.30.0/go.mod h1:/tk+P47gFdPXq4QYjvCmT5/Gsug2nagsFWBWhAiSi1w=
github.com/simukti/sqldb-logger v0.0.0-20230108154142-840120f68bea h1:MygiYxbZHQAGOsZmrIiytjLhPLwww1xcdXzPORrOrLM=
github.com/simukti/sqldb-logger v0.0.0-20230108154142-840120f68bea/go.mod h1:ztTX0ctjRZ1wn9OXrzhonvNmv43yjFUXJYJR95JQAJE=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
Expand Down
4 changes: 2 additions & 2 deletions logadapter/zerologadapter/logger.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ func New(logger zerolog.Logger) sqldblogger.Logger {

// Log implement sqldblogger.Logger and log it as is.
// To use context.Context values, please copy this file and adjust to your needs.
func (zl *zerologAdapter) Log(_ context.Context, level sqldblogger.Level, msg string, data map[string]interface{}) {
func (zl *zerologAdapter) Log(ctx context.Context, level sqldblogger.Level, msg string, data map[string]interface{}) {
var lvl zerolog.Level

switch level {
Expand All @@ -35,5 +35,5 @@ func (zl *zerologAdapter) Log(_ context.Context, level sqldblogger.Level, msg st
lvl = zerolog.DebugLevel
}

zl.logger.WithLevel(lvl).Fields(data).Msg(msg)
zl.logger.WithLevel(lvl).Ctx(ctx).Fields(data).Msg(msg)
}
19 changes: 17 additions & 2 deletions logadapter/zerologadapter/logger_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,19 +14,33 @@ import (
sqldblogger "github.com/simukti/sqldb-logger"
)

var _ zerolog.Hook = (*Hook)(nil)

type logContent struct {
Level string `json:"level"`
Time int64 `json:"time"`
Duration float64 `json:"duration"`
Query string `json:"query"`
Args []interface{} `json:"args"`
Error string `json:"error"`
CtxValue string `json:"ctxValue"`
}

type ctxKey struct{}

type Hook struct{}

func (h Hook) Run(e *zerolog.Event, _ zerolog.Level, _ string) {
ctx := e.GetCtx()
if value, ok := ctx.Value(ctxKey{}).(string); ok {
e.Str("ctxValue", value)
}
}

func TestZerologAdapter_Log(t *testing.T) {
now := time.Now()
wr := &bytes.Buffer{}
lg := New(zerolog.New(wr))
lg := New(zerolog.New(wr).Hook(Hook{}))
lvls := map[sqldblogger.Level]string{
sqldblogger.LevelError: "error",
sqldblogger.LevelInfo: "info",
Expand All @@ -47,7 +61,7 @@ func TestZerologAdapter_Log(t *testing.T) {
data["error"] = fmt.Errorf("dummy error").Error()
}

lg.Log(context.TODO(), lvl, "query", data)
lg.Log(context.WithValue(context.TODO(), ctxKey{}, "context value"), lvl, "query", data)

var content logContent

Expand All @@ -57,6 +71,7 @@ func TestZerologAdapter_Log(t *testing.T) {
assert.True(t, content.Duration > 0)
assert.Equal(t, lvlStr, content.Level)
assert.Equal(t, "SELECT at.* FROM a_table AS at WHERE a.id = ? LIMIT 1", content.Query)
assert.Equal(t, "context value", content.CtxValue)
if lvl == sqldblogger.LevelError {
assert.Equal(t, "dummy error", content.Error)
}
Expand Down