你好我想使用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/ []byteis 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 关注
- 137 浏览
添加回答
举报
0/150
提交
取消
