...
1 package viper
2
3 import (
4 "context"
5
6 slog "github.com/sagikazarmark/slog-shim"
7 )
8
9
10
11
12
13
14 type Logger interface {
15
16
17
18
19 Trace(msg string, keyvals ...any)
20
21
22
23
24
25 Debug(msg string, keyvals ...any)
26
27
28
29
30 Info(msg string, keyvals ...any)
31
32
33
34
35 Warn(msg string, keyvals ...any)
36
37
38
39
40
41
42 Error(msg string, keyvals ...any)
43 }
44
45
46 func WithLogger(l *slog.Logger) Option {
47 return optionFunc(func(v *Viper) {
48 v.logger = l
49 })
50 }
51
52 type discardHandler struct{}
53
54 func (n *discardHandler) Enabled(_ context.Context, _ slog.Level) bool {
55 return false
56 }
57
58 func (n *discardHandler) Handle(_ context.Context, _ slog.Record) error {
59 return nil
60 }
61
62 func (n *discardHandler) WithAttrs(_ []slog.Attr) slog.Handler {
63 return n
64 }
65
66 func (n *discardHandler) WithGroup(_ string) slog.Handler {
67 return n
68 }
69
View as plain text