@marcel91200 / caddy Mirror · read-only / commits / 0be3d995
Fork 0

Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS

Mirrored from https://github.com/Slazee/caddy.git

Synced Nov 13, 18:00 UTC

logging: Implement rename filter, changes field key names (#4745)

Francis Lavoie committed Apr 28, 2022 at 11:38 UTC 0be3d995439245e8b4069fd3bddcd4b8ef9194d4
1 file changed +37 -1
modules/logging/filters.go
+37 -1
@@ -31,12 +31,13 @@ import (
31
32 func init() {
33 caddy.RegisterModule(DeleteFilter{})
34 + caddy.RegisterModule(HashFilter{})
35 caddy.RegisterModule(ReplaceFilter{})
36 caddy.RegisterModule(IPMaskFilter{})
37 caddy.RegisterModule(QueryFilter{})
38 caddy.RegisterModule(CookieFilter{})
39 caddy.RegisterModule(RegexpFilter{})
39 - caddy.RegisterModule(HashFilter{})
40 + caddy.RegisterModule(RenameFilter{})
41 }
42
43 // LogFieldFilter can filter (or manipulate)
@@ -542,21 +543,56 @@ func (f *RegexpFilter) Filter(in zapcore.Field) zapcore.Field {
543 return in
544 }
545
546 +// RenameFilter is a Caddy log field filter that
547 +// renames the field's key with the indicated name.
548 +type RenameFilter struct {
549 + Name string `json:"name,omitempty"`
550 +}
551 +
552 +// CaddyModule returns the Caddy module information.
553 +func (RenameFilter) CaddyModule() caddy.ModuleInfo {
554 + return caddy.ModuleInfo{
555 + ID: "caddy.logging.encoders.filter.rename",
556 + New: func() caddy.Module { return new(RenameFilter) },
557 + }
558 +}
559 +
560 +// UnmarshalCaddyfile sets up the module from Caddyfile tokens.
561 +func (f *RenameFilter) UnmarshalCaddyfile(d *caddyfile.Dispenser) error {
562 + for d.Next() {
563 + if d.NextArg() {
564 + f.Name = d.Val()
565 + }
566 + }
567 + return nil
568 +}
569 +
570 +// Filter renames the input field with the replacement name.
571 +func (f *RenameFilter) Filter(in zapcore.Field) zapcore.Field {
572 + in.Type = zapcore.StringType
573 + in.Key = f.Name
574 + return in
575 +}
576 +
577 // Interface guards
578 var (
579 _ LogFieldFilter = (*DeleteFilter)(nil)
580 + _ LogFieldFilter = (*HashFilter)(nil)
581 _ LogFieldFilter = (*ReplaceFilter)(nil)
582 _ LogFieldFilter = (*IPMaskFilter)(nil)
583 _ LogFieldFilter = (*QueryFilter)(nil)
584 _ LogFieldFilter = (*CookieFilter)(nil)
585 _ LogFieldFilter = (*RegexpFilter)(nil)
586 + _ LogFieldFilter = (*RenameFilter)(nil)
587
588 _ caddyfile.Unmarshaler = (*DeleteFilter)(nil)
589 + _ caddyfile.Unmarshaler = (*HashFilter)(nil)
590 _ caddyfile.Unmarshaler = (*ReplaceFilter)(nil)
591 _ caddyfile.Unmarshaler = (*IPMaskFilter)(nil)
592 _ caddyfile.Unmarshaler = (*QueryFilter)(nil)
593 _ caddyfile.Unmarshaler = (*CookieFilter)(nil)
594 _ caddyfile.Unmarshaler = (*RegexpFilter)(nil)
595 + _ caddyfile.Unmarshaler = (*RenameFilter)(nil)
596
597 _ caddy.Provisioner = (*IPMaskFilter)(nil)
598 _ caddy.Provisioner = (*RegexpFilter)(nil)