Преглед изворни кода

Add new BindJSON method to a logger

tags/v2.1.2^2
9seconds пре 4 година
родитељ
комит
dbaa743e03
5 измењених фајлова са 20 додато и 1 уклоњено
  1. 1
    1
      internal/cli/run_proxy.go
  2. 1
    0
      logger/noop.go
  3. 14
    0
      logger/zerolog.go
  4. 3
    0
      mtglib/init.go
  5. 1
    0
      mtglib/init_internal_test.go

+ 1
- 1
internal/cli/run_proxy.go Прегледај датотеку

@@ -156,7 +156,7 @@ func makeEventStream(conf *config.Config, logger mtglib.Logger) (mtglib.EventStr
156 156
 func runProxy(conf *config.Config, version string) error {
157 157
 	logger := makeLogger(conf)
158 158
 
159
-	logger.BindStr("configuration", conf.String()).Debug("configuration")
159
+	logger.BindJSON("configuration", conf.String()).Debug("configuration")
160 160
 
161 161
 	ntw, err := makeNetwork(conf, version)
162 162
 	if err != nil {

+ 1
- 0
logger/noop.go Прегледај датотеку

@@ -7,6 +7,7 @@ type noopLogger struct{}
7 7
 func (n noopLogger) Named(_ string) mtglib.Logger          { return n }
8 8
 func (n noopLogger) BindInt(_ string, _ int) mtglib.Logger { return n }
9 9
 func (n noopLogger) BindStr(_, _ string) mtglib.Logger     { return n }
10
+func (n noopLogger) BindJSON(_, _ string) mtglib.Logger    { return n }
10 11
 func (n noopLogger) Printf(_ string, _ ...interface{})     {}
11 12
 func (n noopLogger) Info(_ string)                         {}
12 13
 func (n noopLogger) Warning(_ string)                      {}

+ 14
- 0
logger/zerolog.go Прегледај датотеку

@@ -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
 }

+ 3
- 0
mtglib/init.go Прегледај датотеку

@@ -245,6 +245,9 @@ type Logger interface {
245 245
 	// BindStr binds new string parameter to a new logger instance.
246 246
 	BindStr(name, value string) Logger
247 247
 
248
+	// BindJSON binds a new JSON-encoded string to a new logger instance.
249
+	BindJSON(name, value string) Logger
250
+
248 251
 	// Printf is to support log.Logger behavior.
249 252
 	Printf(format string, args ...interface{})
250 253
 

+ 1
- 0
mtglib/init_internal_test.go Прегледај датотеку

@@ -11,6 +11,7 @@ type NoopLogger struct{}
11 11
 func (n NoopLogger) Named(_ string) Logger             { return n }
12 12
 func (n NoopLogger) BindInt(_ string, _ int) Logger    { return n }
13 13
 func (n NoopLogger) BindStr(_, _ string) Logger        { return n }
14
+func (n NoopLogger) BindJSON(_, _ string) Logger       { return n }
14 15
 func (n NoopLogger) Printf(_ string, _ ...interface{}) {}
15 16
 func (n NoopLogger) Info(_ string)                     {}
16 17
 func (n NoopLogger) Warning(_ string)                  {}

Loading…
Откажи
Сачувај