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

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") // 会输出
}