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/BUILD.bazel b/metropolis/test/launch/BUILD.bazel
index c217b35..7c6c6d0 100644
--- a/metropolis/test/launch/BUILD.bazel
+++ b/metropolis/test/launch/BUILD.bazel
@@ -39,6 +39,7 @@
         "xNodeImagePath": "$(rlocationpath //metropolis/node:image )",
     },
     deps = [
+        "//go/logging",
         "//go/qcow2",
         "//metropolis/cli/metroctl/core",
         "//metropolis/node",
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 {