You've already forked VptPassiveAdapter
75 lines
1.7 KiB
Go
75 lines
1.7 KiB
Go
package logger
|
|
|
|
import (
|
|
"go.uber.org/zap"
|
|
"go.uber.org/zap/zapcore"
|
|
"gopkg.in/natefinch/lumberjack.v2"
|
|
)
|
|
|
|
var Logger *zap.Logger
|
|
|
|
func Init() error {
|
|
config := zap.NewProductionConfig()
|
|
config.OutputPaths = []string{"stdout"}
|
|
config.ErrorOutputPaths = []string{"stderr"}
|
|
|
|
// 配置日志轮换
|
|
lumberJackLogger := &lumberjack.Logger{
|
|
Filename: "logs/app.log",
|
|
MaxSize: 10, // MB
|
|
MaxBackups: 3,
|
|
MaxAge: 30, // days
|
|
Compress: true,
|
|
}
|
|
|
|
// 创建写入器
|
|
w := zapcore.AddSync(lumberJackLogger)
|
|
|
|
// 设置日志级别
|
|
level := zap.NewAtomicLevelAt(zap.InfoLevel)
|
|
|
|
// 创建编码器配置
|
|
encoderConfig := zap.NewProductionEncoderConfig()
|
|
encoderConfig.TimeKey = "time"
|
|
encoderConfig.EncodeTime = zapcore.TimeEncoderOfLayout("2006-01-02 15:04:05")
|
|
encoderConfig.EncodeCaller = zapcore.ShortCallerEncoder
|
|
encoderConfig.EncodeLevel = zapcore.CapitalLevelEncoder
|
|
encoderConfig.MessageKey = "msg"
|
|
encoderConfig.CallerKey = "caller"
|
|
|
|
// 创建控制台编码器(文本格式)
|
|
encoder := zapcore.NewConsoleEncoder(encoderConfig)
|
|
|
|
// 创建核心
|
|
core := zapcore.NewCore(encoder, w, level)
|
|
|
|
// 创建日志记录器
|
|
Logger = zap.New(core, zap.AddCaller(), zap.AddStacktrace(zapcore.ErrorLevel))
|
|
|
|
return nil
|
|
}
|
|
|
|
func Info(message string, fields ...zap.Field) {
|
|
Logger.Info(message, fields...)
|
|
}
|
|
|
|
func Error(message string, fields ...zap.Field) {
|
|
Logger.Error(message, fields...)
|
|
}
|
|
|
|
func Warn(message string, fields ...zap.Field) {
|
|
Logger.Warn(message, fields...)
|
|
}
|
|
|
|
func Debug(message string, fields ...zap.Field) {
|
|
Logger.Debug(message, fields...)
|
|
}
|
|
|
|
func Fatal(message string, fields ...zap.Field) {
|
|
Logger.Fatal(message, fields...)
|
|
}
|
|
|
|
func Sync() error {
|
|
return Logger.Sync()
|
|
}
|