zones: introduce (private) logger interface
Signed-off-by: Alejandro Mery <amery@jpi.io>
This commit is contained in:
@@ -8,6 +8,7 @@ require (
|
|||||||
darvaza.org/resolver v0.5.4
|
darvaza.org/resolver v0.5.4
|
||||||
darvaza.org/sidecar v0.0.2
|
darvaza.org/sidecar v0.0.2
|
||||||
darvaza.org/slog v0.5.3
|
darvaza.org/slog v0.5.3
|
||||||
|
darvaza.org/slog/handlers/discard v0.4.5
|
||||||
github.com/burntSushi/toml v0.3.1
|
github.com/burntSushi/toml v0.3.1
|
||||||
github.com/gofrs/uuid/v5 v5.0.0
|
github.com/gofrs/uuid/v5 v5.0.0
|
||||||
github.com/hack-pad/hackpadfs v0.2.1
|
github.com/hack-pad/hackpadfs v0.2.1
|
||||||
|
|||||||
@@ -10,6 +10,8 @@ darvaza.org/sidecar v0.0.2 h1:4H8FUxc43kkLjxdShN1CoxLTcoHQsZjDVwm7kt6eIK0=
|
|||||||
darvaza.org/sidecar v0.0.2/go.mod h1:yFC3Qt3j+uS7n9CMpLxwrA68z+FNJhENoenBc9zBJJo=
|
darvaza.org/sidecar v0.0.2/go.mod h1:yFC3Qt3j+uS7n9CMpLxwrA68z+FNJhENoenBc9zBJJo=
|
||||||
darvaza.org/slog v0.5.3 h1:sQzmZXgqRh9oFMKBwEYrEpucLvKJVZxaxa2bHIA6GJ0=
|
darvaza.org/slog v0.5.3 h1:sQzmZXgqRh9oFMKBwEYrEpucLvKJVZxaxa2bHIA6GJ0=
|
||||||
darvaza.org/slog v0.5.3/go.mod h1:59d+yi+C7gn4pDDuwbbOKawERpdXthFFk1Yc+Sv6XB0=
|
darvaza.org/slog v0.5.3/go.mod h1:59d+yi+C7gn4pDDuwbbOKawERpdXthFFk1Yc+Sv6XB0=
|
||||||
|
darvaza.org/slog/handlers/discard v0.4.5 h1:RRykOItNolHyiUav57lG/GFBL33rcljoa0nWTpY+T0g=
|
||||||
|
darvaza.org/slog/handlers/discard v0.4.5/go.mod h1:HYHfISQjMqcPbPoPZ92ib/u7s9JcXvF6OaygpPFwdF8=
|
||||||
darvaza.org/slog/handlers/filter v0.4.5 h1:CX1bMzldd67e3y3s3Sh4jK8Lyo0WMvTGBB2lD315jhc=
|
darvaza.org/slog/handlers/filter v0.4.5 h1:CX1bMzldd67e3y3s3Sh4jK8Lyo0WMvTGBB2lD315jhc=
|
||||||
darvaza.org/slog/handlers/filter v0.4.5/go.mod h1:OuH9rHYg9CIErTJCZliMnFexBfP/HJ9PZ1V1VwSCZ1g=
|
darvaza.org/slog/handlers/filter v0.4.5/go.mod h1:OuH9rHYg9CIErTJCZliMnFexBfP/HJ9PZ1V1VwSCZ1g=
|
||||||
darvaza.org/slog/handlers/zerolog v0.4.5 h1:W4cgGORx4wImr+RL96CWSQGTdkZzKX6YHXPSYJvdoB4=
|
darvaza.org/slog/handlers/zerolog v0.4.5 h1:W4cgGORx4wImr+RL96CWSQGTdkZzKX6YHXPSYJvdoB4=
|
||||||
|
|||||||
@@ -0,0 +1,49 @@
|
|||||||
|
package zones
|
||||||
|
|
||||||
|
import "darvaza.org/slog"
|
||||||
|
|
||||||
|
type logger interface {
|
||||||
|
withDebug() (slog.Logger, bool)
|
||||||
|
withInfo() (slog.Logger, bool)
|
||||||
|
|
||||||
|
debug() slog.Logger
|
||||||
|
info() slog.Logger
|
||||||
|
warn(error) slog.Logger
|
||||||
|
error(error) slog.Logger
|
||||||
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
_ logger = (*Zones)(nil)
|
||||||
|
)
|
||||||
|
|
||||||
|
func (z *Zones) withDebug() (slog.Logger, bool) {
|
||||||
|
return z.debug().WithEnabled()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (z *Zones) withInfo() (slog.Logger, bool) {
|
||||||
|
return z.debug().WithEnabled()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (z *Zones) debug() slog.Logger {
|
||||||
|
return z.log.Debug()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (z *Zones) info() slog.Logger {
|
||||||
|
return z.log.Info()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (z *Zones) warn(err error) slog.Logger {
|
||||||
|
l := z.log.Warn()
|
||||||
|
if err != nil {
|
||||||
|
l = l.WithField(slog.ErrorFieldName, err)
|
||||||
|
}
|
||||||
|
return l
|
||||||
|
}
|
||||||
|
|
||||||
|
func (z *Zones) error(err error) slog.Logger {
|
||||||
|
l := z.log.Error()
|
||||||
|
if err != nil {
|
||||||
|
l = l.WithField(slog.ErrorFieldName, err)
|
||||||
|
}
|
||||||
|
return l
|
||||||
|
}
|
||||||
@@ -69,6 +69,7 @@ func WithLogger(log slog.Logger) ScanOption {
|
|||||||
}
|
}
|
||||||
|
|
||||||
opt.Logger = log
|
opt.Logger = log
|
||||||
|
m.log = log
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import (
|
|||||||
"sort"
|
"sort"
|
||||||
|
|
||||||
"darvaza.org/resolver"
|
"darvaza.org/resolver"
|
||||||
|
"darvaza.org/slog"
|
||||||
"github.com/gofrs/uuid/v5"
|
"github.com/gofrs/uuid/v5"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -141,6 +142,7 @@ func (z *Zone) GatewayIDs() ([]int, int) {
|
|||||||
// Zones represents all zones in a cluster
|
// Zones represents all zones in a cluster
|
||||||
type Zones struct {
|
type Zones struct {
|
||||||
dir fs.FS
|
dir fs.FS
|
||||||
|
log slog.Logger
|
||||||
resolver resolver.Resolver
|
resolver resolver.Resolver
|
||||||
domain string
|
domain string
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user