feat(auth): 添加完整的用户认证API项目
- 实现用户注册、登录、JWT令牌认证功能 - 集成Gin、GORM、Viper、Zap等框架 - 添加密码加密、数据库操作、中间件等完整功能 - 配置多环境支持、日志轮转、CORS处理 - 创建完整的项目结构和配置文件体系
This commit is contained in:
48
Web开发/05go-zap-demo/04zap_rotate.go
Normal file
48
Web开发/05go-zap-demo/04zap_rotate.go
Normal file
@@ -0,0 +1,48 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"go.uber.org/zap"
|
||||
"go.uber.org/zap/zapcore"
|
||||
"gopkg.in/natefinch/lumberjack.v2"
|
||||
)
|
||||
|
||||
func main() {
|
||||
// 1. 配置日志轮转
|
||||
logRotate := &lumberjack.Logger{
|
||||
Filename: "./logs/app.log", // 日志文件路径
|
||||
MaxSize: 10, // 每个日志文件最大 10MB
|
||||
MaxBackups: 5, // 保留最近 5 个备份
|
||||
MaxAge: 30, // 保留 30 天
|
||||
Compress: true, // 压缩旧日志
|
||||
}
|
||||
|
||||
// 2. 创建 WriteSyncer
|
||||
writeSyncer := zapcore.AddSync(logRotate)
|
||||
|
||||
// 3. 配置 Encoder
|
||||
encoderConfig := zap.NewProductionEncoderConfig()
|
||||
encoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder
|
||||
encoderConfig.EncodeLevel = zapcore.CapitalLevelEncoder
|
||||
|
||||
// 4. 创建 Core
|
||||
core := zapcore.NewCore(
|
||||
zapcore.NewJSONEncoder(encoderConfig),
|
||||
writeSyncer,
|
||||
zap.InfoLevel,
|
||||
)
|
||||
|
||||
// 5. 创建 Logger
|
||||
logger := zap.New(core, zap.AddCaller())
|
||||
defer logger.Sync()
|
||||
|
||||
// 6. 使用 Logger
|
||||
for i := 0; i < 100; i++ {
|
||||
logger.Info("Processing request",
|
||||
zap.Int("request_id", i),
|
||||
zap.String("method", "GET"),
|
||||
zap.String("path", "/api/users"),
|
||||
)
|
||||
}
|
||||
|
||||
logger.Info("Log rotation configured successfully")
|
||||
}
|
||||
Reference in New Issue
Block a user