Browse Source

logging: Little fix for filtering object fields

master
Matthew Holt 6 years ago
parent
commit
8c7c2e4af2
No known key found for this signature in database GPG Key ID: 2A349DD577D586A5
  1. 8
      modules/logging/filterencoder.go

8
modules/logging/filterencoder.go

@ -39,6 +39,11 @@ type FilterEncoder struct {
// A map of field names to their filters. Note that this
// is not a module map; the keys are field names.
//
// Nested fields can be referenced by representing a
// layer of nesting with `>`. In other words, for an
// object like `{"a":{"b":0}}`, the inner field can
// be referenced as `a>b`.
FieldsRaw map[string]json.RawMessage `json:"fields,omitempty" caddy:"namespace=caddy.logging.encoders.filter inline_key=filter"`
wrapped zapcore.Encoder
@ -96,6 +101,9 @@ func (fe FilterEncoder) AddArray(key string, marshaler zapcore.ArrayMarshaler) e
// AddObject is part of the zapcore.ObjectEncoder interface.
func (fe FilterEncoder) AddObject(key string, marshaler zapcore.ObjectMarshaler) error {
if fe.filtered(key, marshaler) {
return nil
}
fe.keyPrefix += key + ">"
return fe.wrapped.AddObject(key, logObjectMarshalerWrapper{
enc: fe,

Loading…
Cancel
Save