feat(auth): 添加完整的用户认证API项目
- 实现用户注册、登录、JWT令牌认证功能 - 集成Gin、GORM、Viper、Zap等框架 - 添加密码加密、数据库操作、中间件等完整功能 - 配置多环境支持、日志轮转、CORS处理 - 创建完整的项目结构和配置文件体系
This commit is contained in:
51
Web开发/05go-zap-demo/03zap_custom.go
Normal file
51
Web开发/05go-zap-demo/03zap_custom.go
Normal file
@@ -0,0 +1,51 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"go.uber.org/zap"
|
||||
"go.uber.org/zap/zapcore"
|
||||
)
|
||||
|
||||
func main() {
|
||||
// 1. 自定义配置
|
||||
config := zap.Config{
|
||||
Level: zap.NewAtomicLevelAt(zap.InfoLevel), // 日志级别
|
||||
Development: false, // 生产模式
|
||||
Encoding: "json", // 输出格式:json/console
|
||||
OutputPaths: []string{"stdout", "app.log"}, // 输出到控制台和文件
|
||||
ErrorOutputPaths: []string{"stderr"},
|
||||
EncoderConfig: zapcore.EncoderConfig{
|
||||
TimeKey: "time",
|
||||
LevelKey: "level",
|
||||
NameKey: "logger",
|
||||
CallerKey: "caller",
|
||||
MessageKey: "msg",
|
||||
StacktraceKey: "stacktrace",
|
||||
LineEnding: zapcore.DefaultLineEnding,
|
||||
EncodeLevel: zapcore.LowercaseLevelEncoder, // 小写级别名
|
||||
EncodeTime: zapcore.ISO8601TimeEncoder, // ISO8601 时间格式
|
||||
EncodeDuration: zapcore.SecondsDurationEncoder,
|
||||
EncodeCaller: zapcore.ShortCallerEncoder, // 短路径
|
||||
},
|
||||
}
|
||||
|
||||
// 2. 创建 Logger
|
||||
logger, _ := config.Build()
|
||||
defer logger.Sync()
|
||||
|
||||
// 3. 使用 Logger
|
||||
logger.Info("Custom logger initialized",
|
||||
zap.String("env", "production"),
|
||||
zap.Int("workers", 10),
|
||||
)
|
||||
|
||||
logger.Warn("Low disk space",
|
||||
zap.Int64("available_mb", 500),
|
||||
zap.Int64("threshold_mb", 1000),
|
||||
)
|
||||
|
||||
logger.Error("Database connection failed",
|
||||
zap.String("host", "localhost"),
|
||||
zap.Int("port", 3306),
|
||||
zap.Error(nil),
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user