你好,我想使用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类型是[]字节,我的问题是如何打印它们,但我不应该使用什么
发布于 2021-12-10 00:31:06
zap.String的定义是:
func String(key string, val string) Field因此,第二个参数是string;UUID/[]byte不是string,因此不能按原样使用。这给您留下了两个选择:
string传递给zap.String (将所拥有的转换为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)),
)https://stackoverflow.com/questions/70297711
复制相似问题