axonhub / internal /log /encoder.go
llzai's picture
Upload 1793 files
9853396 verified
package log
import (
"encoding/json"
"go.uber.org/zap/zapcore"
)
func EncodeAny(encoder zapcore.ObjectEncoder, key string, obj any) error {
switch raw := obj.(type) {
case zapcore.ObjectMarshaler:
return encoder.AddObject(key, raw)
case json.Marshaler:
return encoder.AddReflected(key, raw)
case error:
// must behind json.Marshaler and ObjectMarshaler
encoder.AddString(key, raw.Error())
return nil
default:
return encoder.AddReflected(key, raw)
}
}