mirror of
https://github.com/ScuroNeko/mtg.git
synced 2026-08-31 11:34:01 +03:00
Add new BindJSON method to a logger
This commit is contained in:
@@ -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) {}
|
||||
|
||||
@@ -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:
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user