- 实现用户注册、登录、JWT令牌认证功能 - 集成Gin、GORM、Viper、Zap等框架 - 添加密码加密、数据库操作、中间件等完整功能 - 配置多环境支持、日志轮转、CORS处理 - 创建完整的项目结构和配置文件体系
46 lines
1.1 KiB
Go
46 lines
1.1 KiB
Go
package main
|
|
|
|
import (
|
|
"time"
|
|
|
|
"go.uber.org/zap"
|
|
)
|
|
|
|
func main() {
|
|
// 1. 创建可调整的日志级别
|
|
atom := zap.NewAtomicLevelAt(zap.InfoLevel)
|
|
|
|
// 2. 配置 Logger
|
|
config := zap.Config{
|
|
Level: atom,
|
|
Development: false,
|
|
Encoding: "json",
|
|
OutputPaths: []string{"stdout"},
|
|
ErrorOutputPaths: []string{"stderr"},
|
|
EncoderConfig: zap.NewProductionEncoderConfig(),
|
|
}
|
|
|
|
logger, _ := config.Build()
|
|
defer logger.Sync()
|
|
|
|
// 3. 初始日志级别为 Info
|
|
logger.Debug("Debug message - 1") // 不会输出
|
|
logger.Info("Info message - 1") // 会输出
|
|
|
|
// 4. 动态调整为 Debug 级别
|
|
time.Sleep(1 * time.Second)
|
|
atom.SetLevel(zap.DebugLevel)
|
|
logger.Info("Log level changed to Debug")
|
|
|
|
logger.Debug("Debug message - 2") // 现在会输出
|
|
logger.Info("Info message - 2") // 会输出
|
|
|
|
// 5. 动态调整为 Warn 级别
|
|
time.Sleep(1 * time.Second)
|
|
atom.SetLevel(zap.WarnLevel)
|
|
logger.Info("Log level changed to Warn")
|
|
|
|
logger.Info("Info message - 3") // 不会输出
|
|
logger.Warn("Warn message - 3") // 会输出
|
|
}
|