diff --git a/pkg/kube/logger.go b/pkg/kube/logger.go index 357a6827f..00724c7c3 100644 --- a/pkg/kube/logger.go +++ b/pkg/kube/logger.go @@ -16,17 +16,33 @@ limitations under the License. package kube +import "log/slog" + // Logger defines a minimal logging interface compatible with slog.Logger type Logger interface { Debug(msg string, args ...any) Warn(msg string, args ...any) } -// NopLogger is a logger that does nothing +type SlogAdapter struct { + logger *slog.Logger +} + type NopLogger struct{} -// Debug implements the Logger interface func (n NopLogger) Debug(msg string, args ...any) {} func (n NopLogger) Warn(msg string, args ...any) {} var nopLogger = NopLogger{} + +func (a SlogAdapter) Debug(msg string, args ...any) { + a.logger.Debug(msg, args...) +} + +func (a SlogAdapter) Warn(msg string, args ...any) { + a.logger.Warn(msg, args...) +} + +func NewSlogAdapter(logger *slog.Logger) Logger { + return SlogAdapter{logger: logger} +} diff --git a/pkg/kube/ready.go b/pkg/kube/ready.go index 2814aa72e..871bd4eee 100644 --- a/pkg/kube/ready.go +++ b/pkg/kube/ready.go @@ -19,8 +19,6 @@ package kube // import "helm.sh/helm/v4/pkg/kube" import ( "context" "fmt" - "io" - "log/slog" appsv1 "k8s.io/api/apps/v1" batchv1 "k8s.io/api/batch/v1" @@ -65,7 +63,7 @@ func NewReadyChecker(cl kubernetes.Interface, logger Logger, opts ...ReadyChecke log: logger, } if c.log == nil { - c.log = slog.New(slog.NewTextHandler(io.Discard, nil)) + c.log = nopLogger } for _, opt := range opts { opt(&c)