metropolis/resolver: use logging.Leveled

This moves the resover client library to use logging.Leveled instead of
an ad-hoc logger interface.

By now having multiple level of logs, and by defaulting metroctl to show
errors and warnings, this should fix #302.

Change-Id: I7cae1cf1be377ec824ad46ea1da1b23b46e01903
Reviewed-on: https://review.monogon.dev/c/monogon/+/3432
Reviewed-by: Lorenz Brun <lorenz@monogon.tech>
Tested-by: Jenkins CI
diff --git a/metropolis/test/launch/cluster.go b/metropolis/test/launch/cluster.go
index e0a0473..8be6736 100644
--- a/metropolis/test/launch/cluster.go
+++ b/metropolis/test/launch/cluster.go
@@ -41,6 +41,7 @@
 	apb "source.monogon.dev/metropolis/proto/api"
 	cpb "source.monogon.dev/metropolis/proto/common"
 
+	"source.monogon.dev/go/logging"
 	"source.monogon.dev/go/qcow2"
 	metroctl "source.monogon.dev/metropolis/cli/metroctl/core"
 	"source.monogon.dev/metropolis/node"
@@ -199,9 +200,9 @@
 func (c *Cluster) CuratorClient() (*grpc.ClientConn, error) {
 	if c.authClient == nil {
 		authCreds := rpc.NewAuthenticatedCredentials(c.Owner, rpc.WantInsecure())
-		r := resolver.New(c.ctxT, resolver.WithLogger(func(f string, args ...interface{}) {
-			launch.Log("Cluster: client resolver: %s", fmt.Sprintf(f, args...))
-		}))
+		r := resolver.New(c.ctxT, resolver.WithLogger(logging.NewFunctionBackend(func(severity logging.Severity, msg string) {
+			launch.Log("Cluster: client resolver: %s: %s", severity, msg)
+		})))
 		for _, n := range c.NodeIDs {
 			ep, err := resolver.NodeWithDefaultPort(n)
 			if err != nil {