@marcel91200 / caddy Mirror · read-only / commits / 0c7c91a4
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 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