From dd76cf5bb0f4ed53e98bad11d9e6911c15612002 Mon Sep 17 00:00:00 2001 From: ThinkChaos Date: Sun, 14 Jan 2024 14:47:13 -0500 Subject: [PATCH] fix: add `Resolver.String` so logs don't use Go's default format --- resolver/noop_resolver.go | 5 +++++ resolver/parallel_best_resolver.go | 2 +- resolver/resolver.go | 6 ++++++ resolver/strict_resolver.go | 2 +- 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/resolver/noop_resolver.go b/resolver/noop_resolver.go index b30eb0e4..18636bc0 100644 --- a/resolver/noop_resolver.go +++ b/resolver/noop_resolver.go @@ -21,6 +21,11 @@ func (NoOpResolver) Type() string { return "noop" } +// String implements `fmt.Stringer`. +func (r NoOpResolver) String() string { + return r.Type() +} + // IsEnabled implements `config.Configurable`. func (NoOpResolver) IsEnabled() bool { return true diff --git a/resolver/parallel_best_resolver.go b/resolver/parallel_best_resolver.go index f467bb24..31c9c399 100644 --- a/resolver/parallel_best_resolver.go +++ b/resolver/parallel_best_resolver.go @@ -140,7 +140,7 @@ func (r *ParallelBestResolver) String() string { upstreams := make([]string, len(resolvers)) for i, s := range resolvers { - upstreams[i] = fmt.Sprintf("%s", s.resolver) + upstreams[i] = s.resolver.String() } return fmt.Sprintf("%s upstreams '%s (%s)'", r.Type(), r.cfg.Name, strings.Join(upstreams, ",")) diff --git a/resolver/resolver.go b/resolver/resolver.go index de8c898e..355b76eb 100644 --- a/resolver/resolver.go +++ b/resolver/resolver.go @@ -68,6 +68,7 @@ func newRequestWithClientID(question string, rType dns.Type, ip, requestClientID // Resolver generic interface for all resolvers type Resolver interface { config.Configurable + fmt.Stringer // Type returns a short, user-friendly, name for the resolver. // @@ -193,6 +194,11 @@ func (t *typed) Type() string { return t.typeName } +// String implements `fmt.Stringer`. +func (t *typed) String() string { + return t.Type() +} + func (t *typed) log() *logrus.Entry { return log.PrefixedLog(t.Type()) } diff --git a/resolver/strict_resolver.go b/resolver/strict_resolver.go index 3347b12f..0c80da3f 100644 --- a/resolver/strict_resolver.go +++ b/resolver/strict_resolver.go @@ -66,7 +66,7 @@ func (r *StrictResolver) String() string { upstreams := make([]string, len(resolvers)) for i, s := range resolvers { - upstreams[i] = fmt.Sprintf("%s", s.resolver) + upstreams[i] = s.resolver.String() } return fmt.Sprintf("%s upstreams '%s (%s)'", strictResolverType, r.cfg.Name, strings.Join(upstreams, ","))