当前位置: 首页> 财经> 访谈 > Go日志组件Zap的基本使用

Go日志组件Zap的基本使用

时间:2025/7/13 13:16:00来源:https://blog.csdn.net/MCM0115/article/details/139654048 浏览次数:0次

文章目录

  • 1.Zap sugar输出
  • 2. Zap 文件输出

1.Zap sugar输出

package mainimport ("go.uber.org/zap" // 引入 zap 包"time"            // 引入 time 包
)func main() {logger, _ := zap.NewProduction() // 创建生产环境下的 Logger 实例//logger, _ = zap.NewDevelopment() // 创建测试环境下的 Logger 实例defer logger.Sync() // 延迟关闭 Logger 并刷新缓冲区url := "https://imooc.com" // 定义 URLsugar := logger.Sugar()    // 创建一个 Sugar Loggersugar.Infow("failed to fetch URL",// 结构化上下文作为松散类型的键值对"url", url, // URL 键值对"attempt", 3, // 尝试次数键值对"backoff", time.Second, // 退避时长键值对)sugar.Infof("Failed to fetch URL: %s", url) // 格式化记录错误信息
}

2. Zap 文件输出

package mainimport ("go.uber.org/zap" // 引入 zap 包"time"            // 引入 time 包
)// NewLogger 返回一个 zap.Logger 实例和可能的错误
func NewLogger() (*zap.Logger, error) {// 创建一个生产配置的 Logger 配置cfg := zap.NewProductionConfig()// 设置输出路径cfg.OutputPaths = []string{"./myproject.log", // 输出到 myproject.log 文件"stderr",          // 输出到标准错误"stdout",          // 输出到标准输出}// 根据配置构建 Loggerreturn cfg.Build()
}func main() {// 初始化 loggerlogger, err := NewLogger()if err != nil {panic(err) // 如果初始化失败,则抛出错误//panic("初始化logger失败")}su := logger.Sugar() // 创建一个 sugar loggerdefer su.Sync()      // 在退出前同步日志url := "https://imooc.com" // 设置 URL// 记录日志信息su.Info("failed to fetch URL",// 结构化上下文作为强类型的 Field 值zap.String("url", url),               // 记录 URL 字段zap.Int("attempt", 3),                // 记录尝试次数字段zap.Duration("backoff", time.Second), // 记录退避时长字段)
}
关键字:Go日志组件Zap的基本使用

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: