Files
easywish/backend/internal/logger/logger.go

48 lines
614 B
Go

package logger
import (
"sync"
"easywish/config"
"go.uber.org/zap"
)
type Logger interface {
Get() *zap.Logger
Sync() error
}
type loggerImpl struct {
}
func NewLogger() Logger {
return &loggerImpl{}
}
var (
logger *zap.Logger
once sync.Once
)
func (l *loggerImpl) Get() *zap.Logger {
once.Do(func() {
var err error
cfg := config.GetConfig()
if cfg.Environment == "production" {
logger, err = zap.NewProduction()
} else {
logger, err = zap.NewDevelopment()
}
if err != nil {
panic(err)
}
})
return logger
}
func (l *loggerImpl) Sync() error {
return logger.Sync()
}