diff --git a/lib/java/src/org/apache/thrift/server/TNonblockingServer.java b/lib/java/src/org/apache/thrift/server/TNonblockingServer.java
index fe0365a..2358c63 100644
--- a/lib/java/src/org/apache/thrift/server/TNonblockingServer.java
+++ b/lib/java/src/org/apache/thrift/server/TNonblockingServer.java
@@ -239,7 +239,6 @@
       } catch (TTransportException tte) {
         // something went wrong accepting.
         LOGGER.warn("Exception trying to accept!", tte);
-        tte.printStackTrace();
         if (clientKey != null) cleanupSelectionKey(clientKey);
         if (client != null) client.close();
       }
diff --git a/lib/java/src/org/apache/thrift/transport/TNonblockingServerSocket.java b/lib/java/src/org/apache/thrift/transport/TNonblockingServerSocket.java
index ef82ac2..df37cb0 100644
--- a/lib/java/src/org/apache/thrift/transport/TNonblockingServerSocket.java
+++ b/lib/java/src/org/apache/thrift/transport/TNonblockingServerSocket.java
@@ -103,7 +103,7 @@
       try {
         serverSocket_.setSoTimeout(0);
       } catch (SocketException sx) {
-        sx.printStackTrace();
+        LOGGER.error("Socket exception while setting socket timeout", sx);
       }
     }
   }
diff --git a/lib/java/src/org/apache/thrift/transport/TSSLTransportFactory.java b/lib/java/src/org/apache/thrift/transport/TSSLTransportFactory.java
index 2232a31..73dfaaf 100644
--- a/lib/java/src/org/apache/thrift/transport/TSSLTransportFactory.java
+++ b/lib/java/src/org/apache/thrift/transport/TSSLTransportFactory.java
@@ -37,11 +37,17 @@
 import javax.net.ssl.SSLSocketFactory;
 import javax.net.ssl.TrustManagerFactory;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 /**
  *  A Factory for providing and setting up Client and Server SSL wrapped
  *  TSocket and TServerSocket
  */
 public class TSSLTransportFactory {
+  
+  private static final Logger LOGGER =
+      LoggerFactory.getLogger(TSSLTransportFactory.class);
 
   /**
    * Get a SSL wrapped TServerSocket bound to the specified port. In this
@@ -225,14 +231,14 @@
         try {
           in.close();
         } catch (IOException e) {
-          e.printStackTrace();
+          LOGGER.warn("Unable to close stream", e);
         }
       }
       if (is != null) {
         try {
           is.close();
         } catch (IOException e) {
-          e.printStackTrace();
+          LOGGER.warn("Unable to close stream", e);
         }
       }
     }
