func ByteString(key string, val []byte) Field {
	return Field{zapField: zap.ByteString(key, val)}
}
ByteString constructs a field that carries UTF-8 encoded text as a []byte.
To log opaque binary blobs (which aren't necessarily valid UTF-8), use
Binary.
package log
import (
	"fmt"
	"time"
	"go.uber.org/zap"
	"go.uber.org/zap/zapcore"
)
type Field struct {
	zapField zap.Field
}
func (f Field) getZapField() zap.Field {
	return f.zapField
}
func getZapFields(fs ...Field) []zap.Field {
	fields := make([]zap.Field, 0, len(fs))
	for _, f := range fs {
		fields = append(fields, f.getZapField())
	}
	return fields
}
func Binary(key string, val []byte) Field {
	return Field{zapField: zap.Binary(key, val)}
}
func Bool(key string, val bool) Field {
	return Field{zapField: zap.Bool(key, val)}
}
func Boolp(key string, val *bool) Field {
	return Field{zapField: zap.Boolp(key, val)}
}