Просмотр исходного кода

Merge pull request #214 from 9seconds/log-json

Add new BindJSON method to a logger
tags/v2.1.2^2
Sergey Arkhipov 4 лет назад
Родитель
Сommit
98f18fc22b
Аккаунт пользователя с таким Email не найден
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
 func runProxy(conf *config.Config, version string) error {
156
 func runProxy(conf *config.Config, version string) error {
157
 	logger := makeLogger(conf)
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
 	ntw, err := makeNetwork(conf, version)
161
 	ntw, err := makeNetwork(conf, version)
162
 	if err != nil {
162
 	if err != nil {

+ 1
- 0
logger/noop.go Просмотреть файл

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

+ 14
- 0
logger/zerolog.go Просмотреть файл

15
 	zeroLogContextVarTypeUnknown zeroLogContextVarType = iota
15
 	zeroLogContextVarTypeUnknown zeroLogContextVarType = iota
16
 	zeroLogContextVarTypeStr
16
 	zeroLogContextVarTypeStr
17
 	zeroLogContextVarTypeInt
17
 	zeroLogContextVarTypeInt
18
+	zeroLogContextVarTypeJSON
18
 )
19
 )
19
 
20
 
20
 type zeroLogContext struct {
21
 type zeroLogContext struct {
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
 func (z *zeroLogContext) Printf(format string, args ...interface{}) {
81
 func (z *zeroLogContext) Printf(format string, args ...interface{}) {
70
 	z.Debug(fmt.Sprintf(format, args...))
82
 	z.Debug(fmt.Sprintf(format, args...))
71
 }
83
 }
110
 		evt.Str(z.ctxVarName, z.ctxVarStr)
122
 		evt.Str(z.ctxVarName, z.ctxVarStr)
111
 	case zeroLogContextVarTypeInt:
123
 	case zeroLogContextVarTypeInt:
112
 		evt.Int(z.ctxVarName, z.ctxVarInt)
124
 		evt.Int(z.ctxVarName, z.ctxVarInt)
125
+	case zeroLogContextVarTypeJSON:
126
+		evt.RawJSON(z.ctxVarName, []byte(z.ctxVarStr))
113
 	case zeroLogContextVarTypeUnknown:
127
 	case zeroLogContextVarTypeUnknown:
114
 	}
128
 	}
115
 }
129
 }

+ 3
- 0
mtglib/init.go Просмотреть файл

245
 	// BindStr binds new string parameter to a new logger instance.
245
 	// BindStr binds new string parameter to a new logger instance.
246
 	BindStr(name, value string) Logger
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
 	// Printf is to support log.Logger behavior.
251
 	// Printf is to support log.Logger behavior.
249
 	Printf(format string, args ...interface{})
252
 	Printf(format string, args ...interface{})
250
 
253
 

+ 1
- 0
mtglib/init_internal_test.go Просмотреть файл

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

Загрузка…
Отмена
Сохранить