summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorMatthew Holt <mholt@users.noreply.github.com>2020-07-13 16:18:34 -0600
committerMatthew Holt <mholt@users.noreply.github.com>2020-07-13 16:18:34 -0600
commiteda54c22a6f43d542b1e6a6532e8542ddf5eec34 (patch)
treef05e99e12e2b40dc8af6b07d3234c79f23ba7bf6 /modules
parent2c71fb116bc7311898bf87577c3db1215eb0fef9 (diff)
logging: ⚠️ Deprecate logfmt encoder
It is essentially broken because it occludes many log fields. See: https://github.com/caddyserver/caddy/issues/3575
Diffstat (limited to 'modules')
-rw-r--r--modules/logging/encoders.go12
1 files changed, 11 insertions, 1 deletions
diff --git a/modules/logging/encoders.go b/modules/logging/encoders.go
index bd120d5..79382df 100644
--- a/modules/logging/encoders.go
+++ b/modules/logging/encoders.go
@@ -119,6 +119,13 @@ func (je *JSONEncoder) UnmarshalCaddyfile(d *caddyfile.Dispenser) error {
// LogfmtEncoder encodes log entries as logfmt:
// https://www.brandur.org/logfmt
+//
+// Note that logfmt does not encode nested structures
+// properly, so it is not a good fit for most logs.
+//
+// ⚠️ DEPRECATED. Do not use. It will eventually be removed
+// from the standard Caddy modules. For more information,
+// see https://github.com/caddyserver/caddy/issues/3575.
type LogfmtEncoder struct {
zapcore.Encoder `json:"-"`
LogEncoderConfig
@@ -133,7 +140,10 @@ func (LogfmtEncoder) CaddyModule() caddy.ModuleInfo {
}
// Provision sets up the encoder.
-func (lfe *LogfmtEncoder) Provision(_ caddy.Context) error {
+func (lfe *LogfmtEncoder) Provision(ctx caddy.Context) error {
+ ctx.Logger(lfe).Warn("the logfmt encoder is DEPRECATED and will soon be removed from the standard modules",
+ zap.String("recommendation", "switch to a log format that isn't broken"),
+ zap.String("more_info", "https://github.com/caddyserver/caddy/issues/3575"))
lfe.Encoder = zaplogfmt.NewEncoder(lfe.ZapcoreEncoderConfig())
return nil
}