Cache encoder for auditlog backend

This commit is contained in:
wojtekt 2019-10-03 16:38:47 +02:00
parent 90f487190a
commit 3ad42fb8ca

View File

@ -46,7 +46,7 @@ var AllowedFormats = []string{
type backend struct { type backend struct {
out io.Writer out io.Writer
format string format string
groupVersion schema.GroupVersion encoder runtime.Encoder
} }
var _ audit.Backend = &backend{} var _ audit.Backend = &backend{}
@ -55,7 +55,7 @@ func NewBackend(out io.Writer, format string, groupVersion schema.GroupVersion)
return &backend{ return &backend{
out: out, out: out,
format: format, format: format,
groupVersion: groupVersion, encoder: audit.Codecs.LegacyCodec(groupVersion),
} }
} }
@ -73,7 +73,7 @@ func (b *backend) logEvent(ev *auditinternal.Event) bool {
case FormatLegacy: case FormatLegacy:
line = audit.EventString(ev) + "\n" line = audit.EventString(ev) + "\n"
case FormatJson: case FormatJson:
bs, err := runtime.Encode(audit.Codecs.LegacyCodec(b.groupVersion), ev) bs, err := runtime.Encode(b.encoder, ev)
if err != nil { if err != nil {
audit.HandlePluginError(PluginName, err, ev) audit.HandlePluginError(PluginName, err, ev)
return false return false