github.com/oinume/lekcije@v0.0.0-20231017100347-5b4c5eb6ab24/backend/event_logger/event_logger.go (about)

     1  package event_logger
     2  
     3  import (
     4  	"go.uber.org/zap"
     5  	"go.uber.org/zap/zapcore"
     6  )
     7  
     8  type Logger struct {
     9  	logger *zap.Logger
    10  }
    11  
    12  func New(l *zap.Logger) *Logger {
    13  	return &Logger{logger: l}
    14  }
    15  
    16  func (l *Logger) Log(
    17  	userID uint32,
    18  	category,
    19  	action string,
    20  	fields ...zapcore.Field,
    21  ) {
    22  	f := make([]zapcore.Field, 0, len(fields)+1)
    23  	f = append(
    24  		f,
    25  		zap.String("category", category),
    26  		zap.String("action", action),
    27  		zap.Uint("userID", uint(userID)),
    28  	)
    29  	f = append(f, fields...)
    30  	l.logger.Info("eventLog", f...)
    31  }