Zap 记录器值
Zap logger values
您好,我想使用 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 我的问题是如何打印它们但我不知道我应该使用什么
zap.String
的定义是:
func String(key string, val string) Field
所以第二个参数是string
; UUID
/[]byte
不是 string
,因此不能按原样使用。这给您留下了两个选择:
- 将
string
传递给 zap.String
(将您拥有的内容转换为 string
)或;
- 使用接受您要记录的类型的函数。
zap 提供了一些 return 和 Field
的功能,其中一些接受 []byte
(例如 Binary
and ByteString
. zap also provides Stringer
which you can use with any type that implements the fmt.Stringer
接口(UUID
接受)。
下面(playground)演示:
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)),
)
您好,我想使用 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 我的问题是如何打印它们但我不知道我应该使用什么
zap.String
的定义是:
func String(key string, val string) Field
所以第二个参数是string
; UUID
/[]byte
不是 string
,因此不能按原样使用。这给您留下了两个选择:
- 将
string
传递给zap.String
(将您拥有的内容转换为string
)或; - 使用接受您要记录的类型的函数。
zap 提供了一些 return 和 Field
的功能,其中一些接受 []byte
(例如 Binary
and ByteString
. zap also provides Stringer
which you can use with any type that implements the fmt.Stringer
接口(UUID
接受)。
下面(playground)演示:
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)),
)