Refactor logging functionality to use slog.Handler

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

@ -89,14 +89,14 @@ func NewLogger(debugEnabled DebugEnabledFunc) *slog.Logger {
// 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
// SetLogger sets a new slog.Handler
SetLogger(newLogger slog.Handler)
// Logger returns the slog.Logger created from the slog.Handler
Logger() *slog.Logger
}
type LogHolder struct {
// logger is an slog.Logger pointer to use the driver
// logger is an atomic.Pointer[slog.Logger] to store the slog.Logger
logger atomic.Pointer[slog.Logger]
}
@ -109,12 +109,12 @@ func (l *LogHolder) Logger() *slog.Logger {
}
// SetLogger sets the logger for the LogHolder. If nil, sets the default logger.
func (l *LogHolder) SetLogger(newLogger *slog.Logger) {
func (l *LogHolder) SetLogger(newLogger slog.Handler) {
if newLogger == nil {
l.logger.Store(slog.New(slog.DiscardHandler)) // Assume nil as discarding logs
return
}
l.logger.Store(newLogger)
l.logger.Store(slog.New(newLogger))
}
// Ensure LogHolder implements LoggerSetterGetter

@ -119,7 +119,7 @@ type Configuration struct {
func NewConfiguration() *Configuration {
c := &Configuration{}
c.SetLogger(slog.Default())
c.SetLogger(slog.Default().Handler())
return c
}
@ -494,7 +494,7 @@ func (cfg *Configuration) recordRelease(r *release.Release) {
// Init initializes the action configuration
func (cfg *Configuration) Init(getter genericclioptions.RESTClientGetter, namespace, helmDriver string) error {
kc := kube.New(getter)
kc.SetLogger(cfg.Logger())
kc.SetLogger(cfg.Logger().Handler())
lazyClient := &lazyClient{
namespace: namespace,
@ -505,11 +505,11 @@ func (cfg *Configuration) Init(getter genericclioptions.RESTClientGetter, namesp
switch helmDriver {
case "secret", "secrets", "":
d := driver.NewSecrets(newSecretClient(lazyClient))
d.SetLogger(cfg.Logger())
d.SetLogger(cfg.Logger().Handler())
store = storage.Init(d)
case "configmap", "configmaps":
d := driver.NewConfigMaps(newConfigMapClient(lazyClient))
d.SetLogger(cfg.Logger())
d.SetLogger(cfg.Logger().Handler())
store = storage.Init(d)
case "memory":
var d *driver.Memory
@ -524,7 +524,7 @@ func (cfg *Configuration) Init(getter genericclioptions.RESTClientGetter, namesp
if d == nil {
d = driver.NewMemory()
}
d.SetLogger(cfg.Logger())
d.SetLogger(cfg.Logger().Handler())
d.SetNamespace(namespace)
store = storage.Init(d)
case "sql":
@ -535,7 +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())
d.SetLogger(cfg.Logger().Handler())
store = storage.Init(d)
default:
return fmt.Errorf("unknown driver %q", helmDriver)

@ -182,7 +182,7 @@ func New(getter genericclioptions.RESTClientGetter) *Client {
c := &Client{
Factory: factory,
}
c.SetLogger(slog.Default())
c.SetLogger(slog.Default().Handler())
return c
}

@ -56,7 +56,7 @@ func NewConfigMaps(impl corev1.ConfigMapInterface) *ConfigMaps {
c := &ConfigMaps{
impl: impl,
}
c.SetLogger(slog.Default())
c.SetLogger(slog.Default().Handler())
return c
}

@ -51,7 +51,7 @@ type Memory struct {
// NewMemory initializes a new memory driver.
func NewMemory() *Memory {
m := &Memory{cache: map[string]memReleases{}, namespace: "default"}
m.SetLogger(slog.Default())
m.SetLogger(slog.Default().Handler())
return m
}

@ -55,7 +55,7 @@ func NewSecrets(impl corev1.SecretInterface) *Secrets {
s := &Secrets{
impl: impl,
}
s.SetLogger(slog.Default())
s.SetLogger(slog.Default().Handler())
return s
}

@ -296,7 +296,7 @@ func NewSQL(connectionString string, namespace string) (*SQL, error) {
}
driver.namespace = namespace
driver.SetLogger(slog.Default())
driver.SetLogger(slog.Default().Handler())
return driver, nil
}

@ -341,10 +341,10 @@ func Init(d driver.Driver) *Storage {
// Get logger from driver if it implements the LoggerSetterGetter interface
if ls, ok := d.(logging.LoggerSetterGetter); ok {
ls.SetLogger(s.Logger())
ls.SetLogger(s.Logger().Handler())
} else {
// If the driver does not implement the LoggerSetterGetter interface, set the default logger
s.SetLogger(slog.Default())
s.SetLogger(slog.Default().Handler())
}
return s
}

Loading…
Cancel
Save