Zap 记录器值

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

现在我正在这样使用

        zap.L().Error("error receive",
            zap.Error(err),
            zap.String("uuid", msg.Id)
            zap.String("msg_f", msg_f),
        )

但唯一的问题是由于 uuid 和 msg 的类型而出现错误

type Message struct {
    Id   uuid.UUID}

并且 msg_f 类型是 []byte 我的问题是如何打印它们,但我不知道应该使用什么


PIPIONE
浏览 70回答 1
1回答

慕码人2483693

的定义zap.String是:func String(key string, val string) Field所以第二个参数是 a string; a UUID/ []byteis not astring所以不能按原样使用。这使您有两个选择:将a 传递string给zap.String(将您拥有的内容转换为 a string)或;使用接受您要记录的类型的函数。zap 提供了许多函数,这些函数返回其中的Field一些接受[]byte(例如Binary,ByteString.zap 还提供了Stringer可以与实现fmt.Stringer接口的任何类型一起使用的函数(UUID确实如此)。下面(操场)演示: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)),     )
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go