Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS
Mirrored from https://github.com/Slazee/caddy.git
Synced Nov 11, 12:15 UTC
logging: preserve ts for journald-wrapped JSON logs (#7644)
Zen Dodd committed
Apr 14, 2026 at 09:33 UTC
0c7c91a447922022163bbcc107512bc0b7f8a48b
2 files changed
+9
-12
modules/logging/journaldencoder.go
+6
-9
@@ -81,7 +81,7 @@ func (je *JournaldEncoder) Provision(ctx caddy.Context) error {
81
je.Encoder = val.(zapcore.Encoder)
82
}
83
84
- suppressEncoderTimestamp(je.Encoder)
84
+ suppressConsoleEncoderTimestamp(je.Encoder)
85
86
return nil
87
}
@@ -106,7 +106,7 @@ func (je *JournaldEncoder) ConfigureDefaultFormat(wo caddy.WriterOpener) error {
106
}
107
}
108
109
- suppressEncoderTimestamp(je.Encoder)
109
+ suppressConsoleEncoderTimestamp(je.Encoder)
110
111
return nil
112
}
@@ -194,22 +194,19 @@ func journaldPriorityPrefix(level zapcore.Level) string {
194
}
195
}
196
197
-func suppressEncoderTimestamp(enc zapcore.Encoder) {
197
+func suppressConsoleEncoderTimestamp(enc zapcore.Encoder) {
198
empty := ""
199
200
switch e := enc.(type) {
201
case *ConsoleEncoder:
202
e.TimeKey = &empty
203
_ = e.Provision(caddy.Context{})
204
- case *JSONEncoder:
205
- e.TimeKey = &empty
206
- _ = e.Provision(caddy.Context{})
204
case *AppendEncoder:
208
- suppressEncoderTimestamp(e.wrapped)
205
+ suppressConsoleEncoderTimestamp(e.wrapped)
206
case *FilterEncoder:
210
- suppressEncoderTimestamp(e.wrapped)
207
+ suppressConsoleEncoderTimestamp(e.wrapped)
208
case *JournaldEncoder:
212
- suppressEncoderTimestamp(e.Encoder)
209
+ suppressConsoleEncoderTimestamp(e.Encoder)
210
}
211
}
212
modules/logging/journaldencoder_test.go
+3
-3
@@ -89,7 +89,7 @@ journald {
89
}
90
}
91
92
-func TestJournaldEncoderSuppressesJSONTimestamp(t *testing.T) {
92
+func TestJournaldEncoderPreservesJSONTimestamp(t *testing.T) {
93
enc := &JournaldEncoder{
94
Encoder: &JSONEncoder{},
95
}
@@ -108,8 +108,8 @@ func TestJournaldEncoderSuppressesJSONTimestamp(t *testing.T) {
108
defer buf.Free()
109
110
got := buf.String()
111
- if strings.Contains(got, `"ts"`) {
112
- t.Fatalf("got JSON output with ts field: %q", got)
111
+ if !strings.Contains(got, `"ts"`) {
112
+ t.Fatalf("got JSON output without ts field: %q", got)
113
}
114
}
115