diff options
Diffstat (limited to 'modules')
-rw-r--r-- | modules/logging/filterencoder.go | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/modules/logging/filterencoder.go b/modules/logging/filterencoder.go index 6680019..36823fa 100644 --- a/modules/logging/filterencoder.go +++ b/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, |