From 8d11ffcc68caa99d9d979955f2f8c5e06dccaf36 Mon Sep 17 00:00:00 2001 From: Pierluigi Lenoci Date: Thu, 23 Apr 2026 11:46:02 +0200 Subject: [PATCH] fix: honor klog -stderrthreshold even when -logtostderr is true MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit klog v2 defaults -logtostderr to true, which silently ignores -stderrthreshold — all log levels go to stderr unconditionally. This has been an open issue since 2020 (kubernetes/klog#212). klog v2.140.0 introduced a fix behind an opt-in flag (legacy_stderr_threshold_behavior). This commit enables the fix so that -stderrthreshold is honored, while preserving the current default behavior (stderrthreshold=INFO means all logs still go to stderr unless the user overrides it on the command line). Ref: kubernetes/klog#212 Ref: kubernetes/klog#432 Signed-off-by: Pierluigi Lenoci --- src/cmd/k9s.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/cmd/k9s.go b/src/cmd/k9s.go index 58e3d109ac..36e5867041 100644 --- a/src/cmd/k9s.go +++ b/src/cmd/k9s.go @@ -31,6 +31,11 @@ func newK9sCommand() *cobra.Command { // Mimic k9s/main.go:init() klog.InitFlags(nil) + // Opt into the new klog behavior so that -stderrthreshold is honored even + // when -logtostderr=true (the default). + // Ref: kubernetes/klog#212, kubernetes/klog#432 + flag.Set("legacy_stderr_threshold_behavior", "false") //nolint:errcheck + flag.Set("stderrthreshold", "INFO") //nolint:errcheck if err := flag.Set("logtostderr", "false"); err != nil { return err }