Select Git revision
field.go 1.86 KiB
package zap
import (
"fmt"
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
)
const (
unknownObject = "unknown"
unknownCaller = "unknown"
)
func Category(category string) zapcore.Field {
return zap.String("category", category)
}
func Component(component string) zapcore.Field {
return zap.String("component", component)
}
func Event(event string) zapcore.Field {
return zap.String("event", event)
}
// Object возвращает поле и устанавливает передаваемый аргумент в качестве идентификатора объекта в формате GlobalID.
// Поддерживает один из типов: string, fmt.Stringer. Если передан аргумент другого типа, в качестве идентификатора объекта
// будет установлен "unknown".
func Object(v any) zapcore.Field {
var object string
switch value := v.(type) {
case string:
object = value
case fmt.Stringer:
object = value.String()
default:
object = unknownObject
}
return zap.String("object", object)
}
// Caller возвращает поле и устанавливает передаваемый аргумент в качестве "вызывающего" в формате GlobalID.
// Поддерживает один из типов: string, fmt.Stringer. Если передан аргумент другого типа, в качестве вызывающего
// будет установлен "unknown".
func Caller(v any) zapcore.Field {
var caller string
switch value := v.(type) {
case string:
caller = value
case fmt.Stringer:
caller = value.String()
default:
caller = unknownCaller
}
return zap.String("caller", caller)
}
func Attr(attr any) zapcore.Field {
return zap.Any("attr", attr)
}
func Tags(tags ...string) zapcore.Field {
return zap.Strings("tags", tags)
}