Initial commit
This commit is contained in:
114
logger/logger.go
Normal file
114
logger/logger.go
Normal file
@@ -0,0 +1,114 @@
|
||||
package logger
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"go.uber.org/zap"
|
||||
"go.uber.org/zap/zapcore"
|
||||
)
|
||||
|
||||
// Logger 全局日志实例
|
||||
var Logger *zap.Logger
|
||||
|
||||
// InitializeLogger 初始化日志系统
|
||||
func InitializeLogger(env string) error {
|
||||
var config zap.Config
|
||||
|
||||
switch env {
|
||||
case "development":
|
||||
config = zap.NewDevelopmentConfig()
|
||||
config.EncoderConfig.EncodeLevel = zapcore.CapitalColorLevelEncoder
|
||||
case "production":
|
||||
config = zap.NewProductionConfig()
|
||||
config.Encoding = "json"
|
||||
config.EncoderConfig.TimeKey = "timestamp"
|
||||
config.EncoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder
|
||||
default:
|
||||
config = zap.NewDevelopmentConfig()
|
||||
}
|
||||
|
||||
config.OutputPaths = []string{"stdout"}
|
||||
config.ErrorOutputPaths = []string{"stderr"}
|
||||
|
||||
var err error
|
||||
Logger, err = config.Build()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
zap.ReplaceGlobals(Logger)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// Sync 同步日志到磁盘
|
||||
func Sync() {
|
||||
if err := Logger.Sync(); err != nil {
|
||||
Logger.Error("Failed to sync logger", zap.Error(err))
|
||||
}
|
||||
}
|
||||
|
||||
// Info 记录信息级别的日志
|
||||
func Info(msg string, fields ...zap.Field) {
|
||||
Logger.Info(msg, fields...)
|
||||
}
|
||||
|
||||
// Warn 记录警告级别的日志
|
||||
func Warn(msg string, fields ...zap.Field) {
|
||||
Logger.Warn(msg, fields...)
|
||||
}
|
||||
|
||||
// Error 记录错误级别的日志
|
||||
func Error(msg string, fields ...zap.Field) {
|
||||
Logger.Error(msg, fields...)
|
||||
}
|
||||
|
||||
// Fatal 记录致命级别的日志
|
||||
func Fatal(msg string, fields ...zap.Field) {
|
||||
Logger.Fatal(msg, fields...)
|
||||
}
|
||||
|
||||
// Debug 记录调试级别的日志
|
||||
func Debug(msg string, fields ...zap.Field) {
|
||||
Logger.Debug(msg, fields...)
|
||||
}
|
||||
|
||||
// String 字符串字段
|
||||
func String(key, value string) zap.Field {
|
||||
return zap.String(key, value)
|
||||
}
|
||||
|
||||
// Int 整数字段
|
||||
func Int(key string, value int) zap.Field {
|
||||
return zap.Int(key, value)
|
||||
}
|
||||
|
||||
// Int64 64位整数字段
|
||||
func Int64(key string, value int64) zap.Field {
|
||||
return zap.Int64(key, value)
|
||||
}
|
||||
|
||||
// Bool 布尔字段
|
||||
func Bool(key string, value bool) zap.Field {
|
||||
return zap.Bool(key, value)
|
||||
}
|
||||
|
||||
// Float64 浮点数字段
|
||||
func Float64(key string, value float64) zap.Field {
|
||||
return zap.Float64(key, value)
|
||||
}
|
||||
|
||||
// Err 错误字段
|
||||
func Err(err error) zap.Field {
|
||||
return zap.Error(err)
|
||||
}
|
||||
|
||||
// Time 时间字段
|
||||
func Time(key string, value time.Time) zap.Field {
|
||||
return zap.Time(key, value)
|
||||
}
|
||||
|
||||
// Duration 时间间隔字段
|
||||
func Duration(key string, value time.Duration) zap.Field {
|
||||
return zap.Duration(key, value)
|
||||
}
|
||||
Reference in New Issue
Block a user