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  }