go 日志库 zap

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

zap日志

Zap提供了两种类型的日志记录器—Sugared Logger和Logger。

在性能很好但不是很关键的上下文中,使用SugaredLogger。它比其他结构化日志记录包快4-10倍,并且支持结构化和printf风格的日志记录。

在每一微秒和每一次内存分配都很重要的上下文中,使用Logger。它甚至比SugaredLogger更快,内存分配次数也更少,但它只支持强类型的结构化日志记录


提示:以下是本篇文章正文内容,下面案例可供参考

一、zap是什么?

go语言日志库

二、使用步骤

1.基本使用

代码如下(示例):

package main

import (
    "go.uber.org/zap"
)

func main()  {
    logger, _ := zap.NewProduction()
    defer logger.Sync() // flushes buffer, if any
    url := "https://imooc.com"
    sugar := logger.Sugar()
    sugar.Infow("failed to fetch URL",
        // Structured context as loosely typed key-value pairs.
        "url", url,
        "attempt", 3,
    )
    sugar.Infof("Failed to fetch URL: %s", url)
}

2.写入文件

代码如下(示例):

package main

import (
    "go.uber.org/zap"
    "time"
)


func NewLogger() (*zap.Logger, error) {
    cfg := zap.NewProductionConfig()
    cfg.OutputPaths = []string{
        "./myproject.log",
    }
    return cfg.Build()
}

func main()  {
    //logger, _ := zap.NewProduction()
    logger, err := NewLogger()
    if err != nil {
        panic(err)
        //panic("初始化logger失败")
    }
    su := logger.Sugar()
    defer su.Sync()
    url := "https://imooc.com"
    su.Info("failed to fetch URL",
        // Structured context as strongly typed Field values.
        zap.String("url", url),
        zap.Int("attempt", 3),
        zap.Duration("backoff", time.Second),
    )
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jzin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值