56 lines
1.4 KiB
Go
56 lines
1.4 KiB
Go
package pkg
|
|
|
|
import (
|
|
"os"
|
|
|
|
"github.com/natefinch/lumberjack"
|
|
"go.uber.org/zap"
|
|
"go.uber.org/zap/zapcore"
|
|
)
|
|
|
|
func genEncoder() zapcore.Encoder {
|
|
encoderConfig := zap.NewDevelopmentEncoderConfig()
|
|
encoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder
|
|
encoderConfig.EncodeTime = zapcore.TimeEncoderOfLayout("2006-01-02 15:04:05.000")
|
|
encoderConfig.EncodeLevel = zapcore.CapitalColorLevelEncoder
|
|
return zapcore.NewConsoleEncoder(encoderConfig)
|
|
}
|
|
|
|
func genInfoWrite() zapcore.WriteSyncer {
|
|
infoLumberIO := &lumberjack.Logger{
|
|
Filename: "./logs/info.log",
|
|
MaxSize: 10, // megabytes
|
|
MaxBackups: 100,
|
|
MaxAge: 7, // days
|
|
Compress: false,
|
|
}
|
|
return zapcore.AddSync(infoLumberIO)
|
|
}
|
|
|
|
func genErrorWrite() zapcore.WriteSyncer {
|
|
lumberWriteSyncer := &lumberjack.Logger{
|
|
Filename: "./logs/error.log",
|
|
MaxSize: 10, // megabytes
|
|
MaxBackups: 100,
|
|
MaxAge: 7, // days
|
|
Compress: false,
|
|
}
|
|
return zapcore.AddSync(lumberWriteSyncer)
|
|
}
|
|
|
|
func InitLogger() *zap.SugaredLogger {
|
|
encoder := genEncoder()
|
|
|
|
info := genInfoWrite()
|
|
err := genErrorWrite()
|
|
|
|
core := zapcore.NewTee(
|
|
zapcore.NewCore(encoder, zapcore.NewMultiWriteSyncer(info, zapcore.AddSync(os.Stdout)), zap.DebugLevel),
|
|
zapcore.NewCore(encoder, zapcore.NewMultiWriteSyncer(err, zapcore.AddSync(os.Stdout)), zap.WarnLevel),
|
|
)
|
|
logger := zap.New(core, zap.AddCaller())
|
|
zap.ReplaceGlobals(logger)
|
|
defer logger.Sync()
|
|
return logger.Sugar()
|
|
}
|