From fce8fae363403ba0a61acac8c0de3fedc3f0f2c3 Mon Sep 17 00:00:00 2001 From: Pierluigi Lenoci Date: Fri, 24 Apr 2026 09:48:46 +0200 Subject: [PATCH 1/2] fix: honor stderrthreshold by disabling logtostderr default klog v2 defaults -logtostderr=true, which silently ignores -stderrthreshold. This adds flag.Set calls after klog.InitFlags() to disable logtostderr and enable legacy_stderr_threshold_behavior, a flag introduced in klog v2.140.0 (kubernetes/klog#432). This ensures that -stderrthreshold works as expected when configured. Signed-off-by: Pierluigi Lenoci --- main.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/main.go b/main.go index 3305e7bd9..42eb23ec8 100644 --- a/main.go +++ b/main.go @@ -136,6 +136,14 @@ func main() { klogFlags := flag.NewFlagSet("klog", flag.ExitOnError) klog.InitFlags(klogFlags) + + // klog v2 defaults -logtostderr=true, which silently ignores + // -stderrthreshold. Disable logtostderr and opt-in to the + // legacy_stderr_threshold_behavior flag introduced in klog v2.140.0 + // (kubernetes/klog#432) so that stderrthreshold works as expected. + _ = klogFlags.Set("logtostderr", "false") + _ = klogFlags.Set("legacy_stderr_threshold_behavior", "true") + err := klogFlags.Set("v", cast.ToString(klogLevel)) if err != nil { fmt.Printf("%s - failed to set log level for klog, moving on.\n", err) From 699e91532fd5c20647336a636c26f8d3abed1348 Mon Sep 17 00:00:00 2001 From: Pierluigi Lenoci Date: Fri, 24 Apr 2026 09:53:42 +0200 Subject: [PATCH 2/2] fix: use correct flag values for stderrthreshold fix Set legacy_stderr_threshold_behavior=false (not true) to enable the fix, and set stderrthreshold=INFO (not logtostderr=false) to preserve default behavior while allowing users to override on the command line. Signed-off-by: Pierluigi Lenoci Signed-off-by: Pierluigi Lenoci --- main.go | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/main.go b/main.go index 42eb23ec8..898d19a00 100644 --- a/main.go +++ b/main.go @@ -137,12 +137,11 @@ func main() { klogFlags := flag.NewFlagSet("klog", flag.ExitOnError) klog.InitFlags(klogFlags) - // klog v2 defaults -logtostderr=true, which silently ignores - // -stderrthreshold. Disable logtostderr and opt-in to the - // legacy_stderr_threshold_behavior flag introduced in klog v2.140.0 - // (kubernetes/klog#432) so that stderrthreshold works as expected. - _ = klogFlags.Set("logtostderr", "false") - _ = klogFlags.Set("legacy_stderr_threshold_behavior", "true") + // 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") + _ = klogFlags.Set("stderrthreshold", "INFO") err := klogFlags.Set("v", cast.ToString(klogLevel)) if err != nil {