From 6a049b633e2044dae502b7e3e0a5e9f0748a1dc4 Mon Sep 17 00:00:00 2001 From: Mike Hearn Date: Mon, 5 Sep 2011 13:20:48 +0000 Subject: [PATCH] Don't log stack traces for expected network problems. Clean up the logging a bit. Resolves issue 69. --- src/com/google/bitcoin/core/PeerGroup.java | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/com/google/bitcoin/core/PeerGroup.java b/src/com/google/bitcoin/core/PeerGroup.java index 21c1df15..1f5fc6bb 100644 --- a/src/com/google/bitcoin/core/PeerGroup.java +++ b/src/com/google/bitcoin/core/PeerGroup.java @@ -26,7 +26,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.IOException; +import java.net.ConnectException; import java.net.InetSocketAddress; +import java.net.SocketTimeoutException; import java.util.Collections; import java.util.HashSet; import java.util.Set; @@ -236,15 +238,24 @@ public class PeerGroup { Runnable command = new Runnable() { public void run() { try { - log.info("connecting to " + peer); + log.info("Connecting to " + peer); peer.connect(); peers.add(peer); handleNewPeer(peer); - log.info("running " + peer); peer.run(); } catch (PeerException ex) { - // do not propagate PeerException - log and try next peer - log.error("error while talking to peer", ex); + // Do not propagate PeerException - log and try next peer. Suppress stack traces for + // exceptions we expect as part of normal network behaviour. + final Throwable cause = ex.getCause(); + if (cause instanceof SocketTimeoutException) { + log.info("Timeout talking to " + peer + ": " + cause.getMessage()); + } else if (cause instanceof ConnectException) { + log.info("Could not connect to " + peer + ": " + cause.getMessage()); + } else if (cause instanceof IOException) { + log.info("Error talking to " + peer + ": " + cause.getMessage()); + } else { + log.error("Unexpected exception whilst talking to " + peer, ex); + } } finally { // In all cases, disconnect and put the address back on the queue. // We will retry this peer after all other peers have been tried.