Initial commit
This commit is contained in:
51
pkg/logger/logger.go
Normal file
51
pkg/logger/logger.go
Normal file
@@ -0,0 +1,51 @@
|
||||
package logger
|
||||
|
||||
import (
|
||||
"log"
|
||||
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
// Logger defines the interface for logging
|
||||
type Logger interface {
|
||||
Info(msg string, fields ...interface{})
|
||||
Error(msg string, fields ...interface{})
|
||||
Debug(msg string, fields ...interface{})
|
||||
Warn(msg string, fields ...interface{})
|
||||
}
|
||||
|
||||
type zapLogger struct {
|
||||
logger *zap.SugaredLogger
|
||||
}
|
||||
|
||||
func NewLogger(mode string) Logger {
|
||||
var l *zap.Logger
|
||||
var err error
|
||||
if mode == "release" {
|
||||
l, err = zap.NewProduction()
|
||||
} else {
|
||||
l, err = zap.NewDevelopment()
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to initialize logger: %v", err)
|
||||
}
|
||||
|
||||
return &zapLogger{logger: l.Sugar()}
|
||||
}
|
||||
|
||||
func (l *zapLogger) Info(msg string, fields ...interface{}) {
|
||||
l.logger.Infow(msg, fields...)
|
||||
}
|
||||
|
||||
func (l *zapLogger) Error(msg string, fields ...interface{}) {
|
||||
l.logger.Errorw(msg, fields...)
|
||||
}
|
||||
|
||||
func (l *zapLogger) Debug(msg string, fields ...interface{}) {
|
||||
l.logger.Debugw(msg, fields...)
|
||||
}
|
||||
|
||||
func (l *zapLogger) Warn(msg string, fields ...interface{}) {
|
||||
l.logger.Warnw(msg, fields...)
|
||||
}
|
||||
Reference in New Issue
Block a user