github.com/ngocphuongnb/tetua@v0.0.7-alpha/packages/zaplogger/utils.go (about) 1 package zapLogger 2 3 import ( 4 "strconv" 5 6 "github.com/ngocphuongnb/tetua/app/logger" 7 ) 8 9 func (l *ZapLogger) getLogContext(params ...interface{}) (string, []logger.Context) { 10 if len(params) == 0 { 11 return "", []logger.Context{} 12 } 13 14 msg := "" 15 ctx := logger.Context{} 16 contexts := []logger.Context{l.Context} 17 18 if m, ok := params[0].(string); ok { 19 msg = m 20 params = params[1:] 21 } 22 23 for i, p := range params { 24 if err, ok := p.(error); ok && msg == "" { 25 msg = err.Error() 26 } 27 28 if c, ok := p.(logger.Context); ok { 29 contexts = append(contexts, c) 30 } else { 31 ctx[strconv.Itoa(i)] = p 32 } 33 34 } 35 36 contexts = append(contexts, ctx) 37 38 return msg, contexts 39 }