diff --git a/connect/comms.go b/connect/comms.go
index 352426fe6294aa14cef034cb7dad0d064ddc6864..06ec019dc2eeba684a6c8c2ae040795a16c290c1 100644
--- a/connect/comms.go
+++ b/connect/comms.go
@@ -170,6 +170,17 @@ listen:
 			grpc.KeepaliveEnforcementPolicy(KaEnforcement))
 	}
 
+	// Intermittantly print manager connection information
+	go func() {
+		ticker := time.NewTicker(60 * time.Second)
+		for {
+			select {
+			case _ = <-ticker.C:
+				jww.INFO.Printf(pc.Manager.String())
+			}
+		}
+	}()
+
 	return pc, lis, nil
 }
 
diff --git a/connect/manager.go b/connect/manager.go
index 6e2deda458642c9209d2af72edd634df57099696..0de9c72b728fcc30400a68e486544ab03429f302 100644
--- a/connect/manager.go
+++ b/connect/manager.go
@@ -106,9 +106,16 @@ func (m *Manager) DisconnectAll() {
 // Implements Stringer for debug printing
 func (m *Manager) String() string {
 	var result bytes.Buffer
+	i := uint32(0)
+	result.WriteString(fmt.Sprintf("Host Manager Connections\n"))
 	for k, host := range m.connections {
-		result.WriteString(fmt.Sprintf("[%s]: %+v",
-			(&k).String(), host))
+		isConnected, _ := host.Connected()
+		if isConnected {
+			i++
+		}
+		result.WriteString(fmt.Sprintf("[%s] IsConnected: %t\n",
+			(&k).String(), isConnected))
 	}
+	result.WriteString(fmt.Sprintf("%d/%d Hosts connected", i, len(m.connections)))
 	return result.String()
 }