首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Zap记录器值

Zap记录器值
EN

Stack Overflow用户
提问于 2021-12-09 22:50:13
回答 1查看 171关注 0票数 -1

你好,我想使用zap全局记录器。

我现在用的是这个

代码语言:javascript
复制
        zap.L().Error("error receive",
            zap.Error(err),
            zap.String("uuid", msg.Id)
            zap.String("msg_f", msg_f),
        )

但唯一的问题是,由于uuid和msg的类型,我得到了错误。

代码语言:javascript
复制
type Message struct {
    Id   uuid.UUID
}

msg_f类型是[]字节,我的问题是如何打印它们,但我不应该使用什么

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-10 00:31:06

zap.String的定义是:

代码语言:javascript
复制
func String(key string, val string) Field

因此,第二个参数是stringUUID/[]byte不是string,因此不能按原样使用。这给您留下了两个选择:

  • string传递给zap.String (将所拥有的转换为string)或;
  • 使用接受要记录的类型的函数。

zap提供了许多返回Field的函数,其中一些函数接受[]byte (例如,BinaryByteString )。zap还提供了Stringer,您可以与实现fmt.Stringer接口的任何类型( UUID所做的)一起使用它。

下面(游乐场)演示:

代码语言:javascript
复制
zap.L().Error("error receive",
        zap.Error(err),
        zap.String("uuid", msg.Id.String()),
        zap.Stringer("uuid2", msg.Id),
        zap.ByteString("msg_f", msg_f),
        zap.Binary("msg_f2", msg_f),
        zap.String("msg_f3", string(msg_f)),
    )
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70297711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档