From 98ab9d3b2bb89436e63e69f54ffcc8cefa8f3949 Mon Sep 17 00:00:00 2001 From: Pierluigi Lenoci Date: Fri, 24 Apr 2026 09:07:29 +0200 Subject: [PATCH] fix: honor -stderrthreshold when -logtostderr is set klog v2 defaults -logtostderr to true, which silently causes -stderrthreshold to be ignored. klog v2.140.0 introduced the legacy_stderr_threshold_behavior flag that restores the correct interaction between the two flags (see kubernetes/klog#432). This commit sets legacy_stderr_threshold_behavior=false after klog.InitFlags in pkg/logger/klog_bridge.go and sets stderrthreshold=INFO so the default behavior is preserved but users can now override it on the command line. Tetragon is already on klog v2.140.0 so no dependency bump is needed. Ref: kubernetes/klog#212 Signed-off-by: Pierluigi Lenoci Signed-off-by: Pierluigi Lenoci --- pkg/logger/klog_bridge.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkg/logger/klog_bridge.go b/pkg/logger/klog_bridge.go index 72c57fb6491..061b626bc3b 100644 --- a/pkg/logger/klog_bridge.go +++ b/pkg/logger/klog_bridge.go @@ -38,6 +38,12 @@ func initializeKLog(logger *slog.Logger) error { // update them from this file. klog.InitFlags(klogFlags) + // Opt into the new klog behavior so that -stderrthreshold is honored even + // when -logtostderr=true (the default). + // Ref: kubernetes/klog#212, kubernetes/klog#432 + klogFlags.Set("legacy_stderr_threshold_behavior", "false") //nolint:errcheck + klogFlags.Set("stderrthreshold", "INFO") //nolint:errcheck + // Make sure klog does not log to stderr as we want it to control the output // of klog so we want klog to log the errors to each writer of each level. klogFlags.Set("logtostderr", "false")