|
|
@@ -15,6 +15,7 @@ const (
|
|
15
|
15
|
zeroLogContextVarTypeUnknown zeroLogContextVarType = iota
|
|
16
|
16
|
zeroLogContextVarTypeStr
|
|
17
|
17
|
zeroLogContextVarTypeInt
|
|
|
18
|
+ zeroLogContextVarTypeJSON
|
|
18
|
19
|
)
|
|
19
|
20
|
|
|
20
|
21
|
type zeroLogContext struct {
|
|
|
@@ -66,6 +67,17 @@ func (z *zeroLogContext) BindStr(name, value string) mtglib.Logger {
|
|
66
|
67
|
}
|
|
67
|
68
|
}
|
|
68
|
69
|
|
|
|
70
|
+func (z *zeroLogContext) BindJSON(name, value string) mtglib.Logger {
|
|
|
71
|
+ return &zeroLogContext{
|
|
|
72
|
+ name: z.name,
|
|
|
73
|
+ log: z.log,
|
|
|
74
|
+ ctxVarType: zeroLogContextVarTypeJSON,
|
|
|
75
|
+ ctxVarName: name,
|
|
|
76
|
+ ctxVarStr: value,
|
|
|
77
|
+ parent: z,
|
|
|
78
|
+ }
|
|
|
79
|
+}
|
|
|
80
|
+
|
|
69
|
81
|
func (z *zeroLogContext) Printf(format string, args ...interface{}) {
|
|
70
|
82
|
z.Debug(fmt.Sprintf(format, args...))
|
|
71
|
83
|
}
|
|
|
@@ -110,6 +122,8 @@ func (z *zeroLogContext) attachCtx(evt *zerolog.Event) {
|
|
110
|
122
|
evt.Str(z.ctxVarName, z.ctxVarStr)
|
|
111
|
123
|
case zeroLogContextVarTypeInt:
|
|
112
|
124
|
evt.Int(z.ctxVarName, z.ctxVarInt)
|
|
|
125
|
+ case zeroLogContextVarTypeJSON:
|
|
|
126
|
+ evt.RawJSON(z.ctxVarName, []byte(z.ctxVarStr))
|
|
113
|
127
|
case zeroLogContextVarTypeUnknown:
|
|
114
|
128
|
}
|
|
115
|
129
|
}
|