fix: add `Resolver.String` so logs don't use Go's default format

This commit is contained in:
ThinkChaos 2024-01-14 14:47:13 -05:00
parent f0ad412d8d
commit dd76cf5bb0
4 changed files with 13 additions and 2 deletions

View File

@ -21,6 +21,11 @@ func (NoOpResolver) Type() string {
return "noop" return "noop"
} }
// String implements `fmt.Stringer`.
func (r NoOpResolver) String() string {
return r.Type()
}
// IsEnabled implements `config.Configurable`. // IsEnabled implements `config.Configurable`.
func (NoOpResolver) IsEnabled() bool { func (NoOpResolver) IsEnabled() bool {
return true return true

View File

@ -140,7 +140,7 @@ func (r *ParallelBestResolver) String() string {
upstreams := make([]string, len(resolvers)) upstreams := make([]string, len(resolvers))
for i, s := range 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, ",")) return fmt.Sprintf("%s upstreams '%s (%s)'", r.Type(), r.cfg.Name, strings.Join(upstreams, ","))

View File

@ -68,6 +68,7 @@ func newRequestWithClientID(question string, rType dns.Type, ip, requestClientID
// Resolver generic interface for all resolvers // Resolver generic interface for all resolvers
type Resolver interface { type Resolver interface {
config.Configurable config.Configurable
fmt.Stringer
// Type returns a short, user-friendly, name for the resolver. // Type returns a short, user-friendly, name for the resolver.
// //
@ -193,6 +194,11 @@ func (t *typed) Type() string {
return t.typeName return t.typeName
} }
// String implements `fmt.Stringer`.
func (t *typed) String() string {
return t.Type()
}
func (t *typed) log() *logrus.Entry { func (t *typed) log() *logrus.Entry {
return log.PrefixedLog(t.Type()) return log.PrefixedLog(t.Type())
} }

View File

@ -66,7 +66,7 @@ func (r *StrictResolver) String() string {
upstreams := make([]string, len(resolvers)) upstreams := make([]string, len(resolvers))
for i, s := range 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, ",")) return fmt.Sprintf("%s upstreams '%s (%s)'", strictResolverType, r.cfg.Name, strings.Join(upstreams, ","))