Files
learn-golang/Web开发/05go-zap-demo/04zap_rotate.go
liumangmang b010f82221 feat(auth): 添加完整的用户认证API项目
- 实现用户注册、登录、JWT令牌认证功能
- 集成Gin、GORM、Viper、Zap等框架
- 添加密码加密、数据库操作、中间件等完整功能
- 配置多环境支持、日志轮转、CORS处理
- 创建完整的项目结构和配置文件体系
2025-12-30 18:00:42 +08:00

49 lines
1.1 KiB
Go

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")
}