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