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, 14:45 UTC
logging: Ensure `slog` error level logs don't print stack traces (#7512)
Francis Lavoie committed
Mar 3, 2026 at 16:44 UTC
45cf61b1276b2cf79ce0147df8fa48c96e8e5356
3 files changed
+17
-6
caddytest/integration/acme_test.go
+2
-2
@@ -51,7 +51,7 @@ func TestACMEServerWithDefaults(t *testing.T) {
51
Client: &acme.Client{
52
Directory: "https://acme.localhost:9443/acme/local/directory",
53
HTTPClient: tester.Client,
54
- Logger: slog.New(zapslog.NewHandler(logger.Core())),
54
+ Logger: slog.New(zapslog.NewHandler(logger.Core(), zapslog.WithName("acmez"))),
55
},
56
ChallengeSolvers: map[string]acmez.Solver{
57
acme.ChallengeTypeHTTP01: &naiveHTTPSolver{logger: logger},
@@ -120,7 +120,7 @@ func TestACMEServerWithMismatchedChallenges(t *testing.T) {
120
Client: &acme.Client{
121
Directory: "https://acme.localhost:9443/acme/local/directory",
122
HTTPClient: tester.Client,
123
- Logger: slog.New(zapslog.NewHandler(logger.Core())),
123
+ Logger: slog.New(zapslog.NewHandler(logger.Core(), zapslog.WithName("acmez"))),
124
},
125
ChallengeSolvers: map[string]acmez.Solver{
126
acme.ChallengeTypeHTTP01: &naiveHTTPSolver{logger: logger},
cmd/main.go
+7
-1
@@ -484,7 +484,13 @@ func setResourceLimits(logger *zap.Logger) func() {
484
// See https://pkg.go.dev/runtime/debug#SetMemoryLimit
485
_, _ = memlimit.SetGoMemLimitWithOpts(
486
memlimit.WithLogger(
487
- slog.New(zapslog.NewHandler(logger.Core())),
487
+ slog.New(zapslog.NewHandler(
488
+ logger.Core(),
489
+ zapslog.WithName("memlimit"),
490
+ // the default enables traces at ERROR level, this disables
491
+ // them by setting it to a level higher than any other level
492
+ zapslog.AddStacktraceAt(slog.Level(127)),
493
+ )),
494
),
495
memlimit.WithProvider(
496
memlimit.ApplyFallback(
context.go
+8
-3
@@ -608,6 +608,11 @@ func (ctx Context) Slogger() *slog.Logger {
608
core zapcore.Core
609
moduleID string
610
)
611
+
612
+ // the default enables traces at ERROR level, this disables
613
+ // them by setting it to a level higher than any other level
614
+ tracesOpt := zapslog.AddStacktraceAt(slog.Level(127))
615
+
616
if ctx.cfg == nil {
617
// often the case in tests; just use a dev logger
618
l, err := zap.NewDevelopment()
@@ -616,16 +621,16 @@ func (ctx Context) Slogger() *slog.Logger {
621
}
622
623
core = l.Core()
619
- handler = zapslog.NewHandler(core)
624
+ handler = zapslog.NewHandler(core, tracesOpt)
625
} else {
626
mod := ctx.Module()
627
if mod == nil {
628
core = Log().Core()
624
- handler = zapslog.NewHandler(core)
629
+ handler = zapslog.NewHandler(core, tracesOpt)
630
} else {
631
moduleID = string(mod.CaddyModule().ID)
632
core = ctx.cfg.Logging.Logger(mod).Core()
628
- handler = zapslog.NewHandler(core, zapslog.WithName(moduleID))
633
+ handler = zapslog.NewHandler(core, zapslog.WithName(moduleID), tracesOpt)
634
}
635
}
636