Add new BindJSON method to a logger

This commit is contained in:
9seconds
2021-10-04 10:10:14 +03:00
parent 706aef8ca1
commit dbaa743e03
5 changed files with 20 additions and 1 deletions
+1
View File
@@ -7,6 +7,7 @@ type noopLogger struct{}
func (n noopLogger) Named(_ string) mtglib.Logger { return n }
func (n noopLogger) BindInt(_ string, _ int) mtglib.Logger { return n }
func (n noopLogger) BindStr(_, _ string) mtglib.Logger { return n }
func (n noopLogger) BindJSON(_, _ string) mtglib.Logger { return n }
func (n noopLogger) Printf(_ string, _ ...interface{}) {}
func (n noopLogger) Info(_ string) {}
func (n noopLogger) Warning(_ string) {}
+14
View File
@@ -15,6 +15,7 @@ const (
zeroLogContextVarTypeUnknown zeroLogContextVarType = iota
zeroLogContextVarTypeStr
zeroLogContextVarTypeInt
zeroLogContextVarTypeJSON
)
type zeroLogContext struct {
@@ -66,6 +67,17 @@ func (z *zeroLogContext) BindStr(name, value string) mtglib.Logger {
}
}
func (z *zeroLogContext) BindJSON(name, value string) mtglib.Logger {
return &zeroLogContext{
name: z.name,
log: z.log,
ctxVarType: zeroLogContextVarTypeJSON,
ctxVarName: name,
ctxVarStr: value,
parent: z,
}
}
func (z *zeroLogContext) Printf(format string, args ...interface{}) {
z.Debug(fmt.Sprintf(format, args...))
}
@@ -110,6 +122,8 @@ func (z *zeroLogContext) attachCtx(evt *zerolog.Event) {
evt.Str(z.ctxVarName, z.ctxVarStr)
case zeroLogContextVarTypeInt:
evt.Int(z.ctxVarName, z.ctxVarInt)
case zeroLogContextVarTypeJSON:
evt.RawJSON(z.ctxVarName, []byte(z.ctxVarStr))
case zeroLogContextVarTypeUnknown:
}
}