feat: add slog support

Signed-off-by: Mark Sagi-Kazar <mark.sagikazar@gmail.com>
This commit is contained in:
Mark Sagi-Kazar
2023-09-13 16:24:59 +02:00
committed by Márk Sági-Kazár
parent d4c2f2ef40
commit d16deb4b93
7 changed files with 48 additions and 22 deletions
+27
View File
@@ -1,8 +1,10 @@
package viper
import (
"context"
"fmt"
slog "github.com/sagikazarmark/slog-shim"
jww "github.com/spf13/jwalterweatherman"
)
@@ -75,3 +77,28 @@ func jwwLogMessage(msg string, keyvals ...interface{}) string {
return out
}
// WithLogger sets a custom logger.
func WithLogger(l *slog.Logger) Option {
return optionFunc(func(v *Viper) {
v.logger = l
})
}
type discardHandler struct{}
func (n *discardHandler) Enabled(_ context.Context, _ slog.Level) bool {
return false
}
func (n *discardHandler) Handle(_ context.Context, _ slog.Record) error {
return nil
}
func (n *discardHandler) WithAttrs(attrs []slog.Attr) slog.Handler {
return n
}
func (n *discardHandler) WithGroup(name string) slog.Handler {
return n
}