Initial commit

This commit is contained in:
2026-02-12 14:31:30 +08:00
commit e01cdc9889
25 changed files with 3227 additions and 0 deletions

114
logger/logger.go Normal file
View 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)
}