Add logger to sql driver and ensure storage has logger

Signed-off-by: Evans Mungai <mbuevans@gmail.com>
pull/31411/head
Evans Mungai 4 months ago
parent 50e43f4017
commit 9c32e34d60
No known key found for this signature in database
GPG Key ID: BBEB812143DD14E1

@ -85,3 +85,11 @@ func NewLogger(debugEnabled DebugEnabledFunc) *slog.Logger {
return slog.New(dynamicHandler)
}
// LoggerSetterGetter is an interface that can set and get a logger
type LoggerSetterGetter interface {
// SetLogger sets the logger for the object
SetLogger(logger *slog.Logger)
// Logger returns the logger for the object
Logger() *slog.Logger
}

@ -535,6 +535,7 @@ func (cfg *Configuration) Init(getter genericclioptions.RESTClientGetter, namesp
if err != nil {
return fmt.Errorf("unable to instantiate SQL driver: %w", err)
}
d.SetLogger(cfg.Logger())
store = storage.Init(d)
default:
return fmt.Errorf("unknown driver %q", helmDriver)
@ -543,7 +544,6 @@ func (cfg *Configuration) Init(getter genericclioptions.RESTClientGetter, namesp
cfg.RESTClientGetter = getter
cfg.KubeClient = kc
cfg.Releases = store
cfg.Releases.SetLogger(cfg.Logger())
cfg.HookOutputFunc = func(_, _, _ string) io.Writer { return io.Discard }
return nil

@ -23,6 +23,7 @@ import (
"strings"
"sync/atomic"
"helm.sh/helm/v4/internal/logging"
"helm.sh/helm/v4/pkg/release"
"helm.sh/helm/v4/pkg/release/common"
rspb "helm.sh/helm/v4/pkg/release/v1"
@ -338,7 +339,14 @@ func Init(d driver.Driver) *Storage {
s := &Storage{
Driver: d,
}
s.SetLogger(slog.Default())
// Get logger from driver if it implements the LoggerSetterGetter interface
if ls, ok := d.(logging.LoggerSetterGetter); ok {
ls.SetLogger(s.Logger())
} else {
// If the driver does not implement the LoggerSetterGetter interface, set the default logger
s.SetLogger(slog.Default())
}
return s
}

Loading…
Cancel
Save