你好我想使用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 我的问题是如何打印它们,但我不知道应该使用什么
1 回答
慕码人2483693
TA贡献1860条经验 获得超9个赞
的定义zap.String
是:
func String(key string, val string) Field
所以第二个参数是 a string
; a UUID
/ []byte
is not astring
所以不能按原样使用。这使您有两个选择:
将a 传递
string
给zap.String
(将您拥有的内容转换为 astring
)或;使用接受您要记录的类型的函数。
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)), )
- 1 回答
- 0 关注
- 68 浏览
添加回答
举报
0/150
提交
取消