gofiber-study/logger/logger.go
2022-10-03 03:46:09 +08:00

48 lines
1.1 KiB
Go

package logger
import (
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
"os"
)
var logger *zap.Logger
func init() {
encoder := zapcore.NewConsoleEncoder(DefaultEncoderConfig())
multiWriteSyncer := zapcore.NewMultiWriteSyncer(DefaultConsoleSyncer())
core := zapcore.NewCore(encoder, multiWriteSyncer, zapcore.DebugLevel)
logger = zap.New(core, zap.AddCaller())
defer func(logger *zap.Logger) {
_ = logger.Sync()
}(logger)
}
func DefaultTimeEncoder() (timeEncoder zapcore.TimeEncoder) {
timeEncoder = zapcore.TimeEncoderOfLayout("2006-01-02 15:04:05.000")
return
}
func DefaultEncoderConfig() (encoderConfig zapcore.EncoderConfig) {
encoderConfig = zap.NewProductionEncoderConfig()
encoderConfig.EncodeTime = DefaultTimeEncoder()
encoderConfig.EncodeLevel = zapcore.CapitalLevelEncoder
return
}
func DefaultConsoleSyncer() zapcore.WriteSyncer {
return zapcore.AddSync(os.Stdout)
}
func Logger() *zap.SugaredLogger {
sugarLogger := logger.Sugar()
defer func(sugarLogger *zap.SugaredLogger) {
err := sugarLogger.Sync()
if err != nil {
}
}(sugarLogger)
return sugarLogger
}