lbank-connector-go/pkg/log.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()
}