             return PooledConnection(host: host, connection: connection)
         }
 
-        connection.whenFailure { error in
+        connection.whenFailure { [logger] error in
+            logger.error("Connection to \(host) disconnected with error \(error)")
+            
             self.timeoutHosts.insert(host)
             self.discoveredHosts.remove(host)
         }

            }
        }

        return makeConnection(to: host).flatMap { pooledConnection in
            self.pool.append(pooledConnection)


    /// Closes all connections
    @discardableResult
    public func disconnect() -> EventLoopFuture<Void> {
        logger.debug("Disconnecting MongoDB Cluster")
        return self.eventLoop.flatSubmit {
            self.wireVersion = nil
            self.isClosed = true
