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)