You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ma...@apache.org on 2020/10/29 14:02:01 UTC

[lucene-solr] branch reference_impl_dev updated: @1067 Remove test print stack traces to stdout.

This is an automated email from the ASF dual-hosted git repository.

markrmiller pushed a commit to branch reference_impl_dev
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git


The following commit(s) were added to refs/heads/reference_impl_dev by this push:
     new 83ee2f5  @1067 Remove test print stack traces to stdout.
83ee2f5 is described below

commit 83ee2f55187f8a4af18abef4e7c4799b72d9f156
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Thu Oct 29 09:01:37 2020 -0500

    @1067 Remove test print stack traces to stdout.
---
 .../apache/solr/cloud/BasicDistributedZkTest.java    |  6 +++---
 .../apache/solr/cloud/ChaosMonkeySafeLeaderTest.java |  8 ++++++--
 .../ChaosMonkeySafeLeaderWithPullReplicasTest.java   |  2 +-
 .../org/apache/solr/cloud/DeleteReplicaTest.java     |  4 ++--
 .../solr/cloud/FullSolrCloudDistribCmdsTest.java     |  2 +-
 .../org/apache/solr/cloud/LeaderElectionTest.java    |  2 +-
 .../src/test/org/apache/solr/cloud/OverseerTest.java | 10 +++++-----
 .../test/org/apache/solr/cloud/SyncSliceTest.java    |  7 ++++++-
 .../org/apache/solr/cloud/TestCloudConsistency.java  |  2 +-
 .../org/apache/solr/cloud/TestConfigSetsAPI.java     |  4 ++--
 .../test/org/apache/solr/cloud/TestTlogReplica.java  |  2 +-
 .../solr/cloud/TrollingIndexReaderFactory.java       |  6 +++++-
 .../VMParamsZkACLAndCredentialsProvidersTest.java    |  2 +-
 .../test/org/apache/solr/cloud/ZkFailoverTest.java   |  7 ++++++-
 .../test/org/apache/solr/cloud/ZkShardTermsTest.java |  2 +-
 .../collections/TestRequestStatusCollectionAPI.java  | 20 ++++++++++++--------
 .../org/apache/solr/handler/TestBlobHandler.java     |  4 ++--
 .../apache/solr/handler/admin/MBeansHandlerTest.java |  6 +++++-
 .../org/apache/solr/schema/PreAnalyzedFieldTest.java |  8 ++++++--
 .../apache/solr/schema/TestBulkSchemaConcurrent.java |  2 +-
 .../src/test/org/apache/solr/search/TestSolrJ.java   |  8 ++++++--
 .../apache/solr/store/blockcache/BlockCacheTest.java |  8 ++++++--
 .../solr/store/blockcache/BlockDirectoryTest.java    |  6 +++++-
 .../apache/solr/store/hdfs/HdfsDirectoryTest.java    |  8 ++++++--
 .../processor/AtomicUpdateProcessorFactoryTest.java  |  6 +++++-
 .../processor/RoutedAliasUpdateProcessorTest.java    |  6 +++++-
 .../TimeRoutedAliasUpdateProcessorTest.java          |  2 +-
 .../solr/client/solrj/LargeVolumeTestBase.java       |  2 +-
 .../org/apache/solr/client/solrj/StartSolrJetty.java |  8 +++++++-
 .../client/solrj/embedded/SolrExampleJettyTest.java  |  6 +++++-
 .../solrj/impl/ConcurrentUpdateSolrClientTest.java   |  7 +++++--
 .../org/apache/solr/common/params/SolrParamTest.java |  6 +++++-
 .../apache/solr/common/util/TestJavaBinCodec.java    |  6 +++++-
 .../solr/common/util/TestJsonRecordReader.java       |  7 +++++--
 solr/solrj/src/test/org/noggit/TestJSONParser.java   |  9 ++++++---
 .../solr/cloud/AbstractFullDistribZkTestBase.java    |  8 +-------
 .../src/java/org/apache/solr/cloud/ChaosMonkey.java  |  3 +--
 .../org/apache/solr/cloud/StoppableSearchThread.java |  5 ++---
 38 files changed, 145 insertions(+), 72 deletions(-)

diff --git a/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java b/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java
index d826ad0..75e873e 100644
--- a/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java
@@ -1165,7 +1165,7 @@ public class BasicDistributedZkTest extends AbstractFullDistribZkTestBase {
         }
         client.request(createCmd);
       } catch (Exception e) {
-        e.printStackTrace();
+        log.error("", e);
         //fail
       }
       return null;
@@ -1260,7 +1260,7 @@ public class BasicDistributedZkTest extends AbstractFullDistribZkTestBase {
           .setCreateNodeSet("")
           .process(cloudClient).getStatus());
     } catch (Exception e) {
-      e.printStackTrace();
+      log.error("", e);
       //fails
     }
     final List<SolrClient> collectionClients = new ArrayList<>();
@@ -1277,7 +1277,7 @@ public class BasicDistributedZkTest extends AbstractFullDistribZkTestBase {
               .setNode(runner.getNodeName())
               .process(cloudClient).isSuccess());
         } catch (Exception e) {
-          e.printStackTrace();
+          log.error("", e);
           //fails
         }
         return null;
diff --git a/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeySafeLeaderTest.java b/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeySafeLeaderTest.java
index 85d0eb0..4d0687a 100644
--- a/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeySafeLeaderTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeySafeLeaderTest.java
@@ -26,7 +26,10 @@ import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Ignore;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
+import java.lang.invoke.MethodHandles;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.TimeUnit;
@@ -34,7 +37,8 @@ import java.util.concurrent.TimeUnit;
 @Slow
 @Ignore // nocommit debug
 public class ChaosMonkeySafeLeaderTest extends AbstractFullDistribZkTestBase {
-  
+  private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
+
   private static final Integer RUN_LENGTH = Integer.parseInt(System.getProperty("solr.tests.cloud.cm.runlength", "-1"));
 
   @BeforeClass
@@ -187,7 +191,7 @@ public class ChaosMonkeySafeLeaderTest extends AbstractFullDistribZkTestBase {
         break;
       } catch (SolrServerException e) {
         // cluster may not be up yet
-        e.printStackTrace();
+        log.error("", e);
       }
       Thread.sleep(100);
     }
diff --git a/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeySafeLeaderWithPullReplicasTest.java b/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeySafeLeaderWithPullReplicasTest.java
index 4e1b7fd..9fd9447 100644
--- a/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeySafeLeaderWithPullReplicasTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeySafeLeaderWithPullReplicasTest.java
@@ -233,7 +233,7 @@ public class ChaosMonkeySafeLeaderWithPullReplicasTest extends AbstractFullDistr
         break;
       } catch (SolrServerException | SolrException e) {
         // cluster may not be up yet
-        e.printStackTrace();
+        log.error("", e);
       }
       Thread.sleep(100);
     }
diff --git a/solr/core/src/test/org/apache/solr/cloud/DeleteReplicaTest.java b/solr/core/src/test/org/apache/solr/cloud/DeleteReplicaTest.java
index 7237b8c..0786eb7 100644
--- a/solr/core/src/test/org/apache/solr/cloud/DeleteReplicaTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/DeleteReplicaTest.java
@@ -316,7 +316,7 @@ public class DeleteReplicaTest extends SolrCloudTestCase {
               }
               Thread.sleep(250);
             } catch (NullPointerException | SolrException e) {
-              e.printStackTrace();
+              log.error("", e);
               Thread.sleep(250);
             }
           }
@@ -324,7 +324,7 @@ public class DeleteReplicaTest extends SolrCloudTestCase {
             fail("Timeout for waiting replica get deleted");
           }
         } catch (Exception e) {
-          e.printStackTrace();
+          log.error("", e);
           fail("Failed to delete replica");
         } finally {
           //avoiding deadlock
diff --git a/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudDistribCmdsTest.java b/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudDistribCmdsTest.java
index 9b71310..9651fd6 100644
--- a/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudDistribCmdsTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudDistribCmdsTest.java
@@ -434,7 +434,7 @@ public class FullSolrCloudDistribCmdsTest extends SolrCloudTestCase {
             assertEquals(0, req.process(cloudClient).getStatus());
           }
         } catch (Throwable e) {
-          e.printStackTrace();
+          log.error("", e);
           abort.countDown();
         }
       }
diff --git a/solr/core/src/test/org/apache/solr/cloud/LeaderElectionTest.java b/solr/core/src/test/org/apache/solr/cloud/LeaderElectionTest.java
index a493c5b..f8ded28 100644
--- a/solr/core/src/test/org/apache/solr/cloud/LeaderElectionTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/LeaderElectionTest.java
@@ -501,7 +501,7 @@ public class LeaderElectionTest extends SolrTestCaseJ4 {
                 server.expire(sessionId);
               }
             } catch (Exception e) {
-              e.printStackTrace();
+              log.error("", e);
             }
             Thread.sleep(500);
 
diff --git a/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java b/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java
index 1d9ad27..d52dc89 100644
--- a/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java
@@ -916,7 +916,7 @@ public class OverseerTest extends SolrTestCaseJ4 {
             q.offer(Utils.toJSON(m));
             break;
           } catch (SolrException | KeeperException | AlreadyClosedException e) {
-            e.printStackTrace();
+            log.error("", e);
           }
         }
 
@@ -927,7 +927,7 @@ public class OverseerTest extends SolrTestCaseJ4 {
                 1, true, getOpenOverseer());
             break;
           } catch (SolrException | KeeperException | AlreadyClosedException e) {
-            e.printStackTrace();
+            log.error("", e);
           }
         }
 
@@ -945,7 +945,7 @@ public class OverseerTest extends SolrTestCaseJ4 {
                 Replica.State.RECOVERING, 1, true, getOpenOverseer());
             break;
           } catch (SolrException | AlreadyClosedException e) {
-             e.printStackTrace();
+            log.error("", e);
           }
         }
 
@@ -958,7 +958,7 @@ public class OverseerTest extends SolrTestCaseJ4 {
                 1, true, getOpenOverseer());
             break;
           } catch (SolrException | AlreadyClosedException e) {
-            e.printStackTrace();
+            log.error("", e);
           }
         }
 
@@ -972,7 +972,7 @@ public class OverseerTest extends SolrTestCaseJ4 {
                 1, true, getOpenOverseer());
             break;
           } catch (SolrException | AlreadyClosedException e) {
-            e.printStackTrace();
+            log.error("", e);
           }
         }
 
diff --git a/solr/core/src/test/org/apache/solr/cloud/SyncSliceTest.java b/solr/core/src/test/org/apache/solr/cloud/SyncSliceTest.java
index 84ae349..75408ed 100644
--- a/solr/core/src/test/org/apache/solr/cloud/SyncSliceTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/SyncSliceTest.java
@@ -30,8 +30,11 @@ import org.apache.solr.common.cloud.Replica;
 import org.apache.solr.common.params.CollectionParams.CollectionAction;
 import org.apache.solr.common.params.ModifiableSolrParams;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
+import java.lang.invoke.MethodHandles;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -43,6 +46,8 @@ import java.util.List;
 // nocommit - bridge does not yet have some consistency checks here, finish and back in control client
 @LuceneTestCase.Nightly
 public class SyncSliceTest extends SolrCloudBridgeTestCase {
+  private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
+  
   private boolean success = false;
 
  // @Override
@@ -214,7 +219,7 @@ public class SyncSliceTest extends SolrCloudBridgeTestCase {
     try {
       commit();
     } catch (Throwable t) {
-      t.printStackTrace();
+      log.error("", t);
     }
     if (shardFailMessage == null) {
       // try again
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestCloudConsistency.java b/solr/core/src/test/org/apache/solr/cloud/TestCloudConsistency.java
index 6a1716d..fff9897 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestCloudConsistency.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestCloudConsistency.java
@@ -177,7 +177,7 @@ public class TestCloudConsistency extends SolrCloudTestCase {
         try {
           j1.start();
         } catch (Exception e) {
-          e.printStackTrace();
+          log.error("", e);
         }
       }
     };
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPI.java b/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPI.java
index 327e794..8cc1537 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPI.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPI.java
@@ -605,9 +605,9 @@ public class TestConfigSetsAPI extends SolrTestCaseJ4 {
     } catch (InterruptedException e) {
       ParWork.propagateInterrupt(e);
     } catch (ExecutionException e) {
-      e.printStackTrace();
+      log.error("", e);
     } catch (TimeoutException e) {
-      e.printStackTrace();
+      log.error("", e);
     }
     return m;
   }
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestTlogReplica.java b/solr/core/src/test/org/apache/solr/cloud/TestTlogReplica.java
index fa66f0d..cf52abf 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestTlogReplica.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestTlogReplica.java
@@ -594,7 +594,7 @@ public class TestTlogReplica extends SolrCloudTestCase {
         waitingForReplay.release();
         waitingForBufferUpdates.acquire();
       } catch (InterruptedException e) {
-        e.printStackTrace();
+        log.error("", e);
         fail("Test interrupted: " + e.getMessage());
       }
     };
diff --git a/solr/core/src/test/org/apache/solr/cloud/TrollingIndexReaderFactory.java b/solr/core/src/test/org/apache/solr/cloud/TrollingIndexReaderFactory.java
index aea5ca7..c7e7803 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TrollingIndexReaderFactory.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TrollingIndexReaderFactory.java
@@ -18,6 +18,7 @@ package org.apache.solr.cloud;
 
 import java.io.Closeable;
 import java.io.IOException;
+import java.lang.invoke.MethodHandles;
 import java.lang.management.ManagementFactory;
 import java.util.ArrayList;
 import java.util.Date;
@@ -37,8 +38,11 @@ import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.solr.core.SolrCore;
 import org.apache.solr.core.StandardIndexReaderFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class TrollingIndexReaderFactory extends StandardIndexReaderFactory {
+  private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
   private static volatile Trap trap;
   private final static BlockingQueue<List<Object>> lastStacktraces = new LinkedBlockingQueue<List<Object>>();
@@ -197,7 +201,7 @@ public class TrollingIndexReaderFactory extends StandardIndexReaderFactory {
       try {
         lastStacktraces.poll(100, TimeUnit.MILLISECONDS);
       } catch (InterruptedException e1) {
-        e1.printStackTrace();
+        log.error("", e1);
       }
     }
   }
diff --git a/solr/core/src/test/org/apache/solr/cloud/VMParamsZkACLAndCredentialsProvidersTest.java b/solr/core/src/test/org/apache/solr/cloud/VMParamsZkACLAndCredentialsProvidersTest.java
index 3f0c66e..6745dde 100644
--- a/solr/core/src/test/org/apache/solr/cloud/VMParamsZkACLAndCredentialsProvidersTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/VMParamsZkACLAndCredentialsProvidersTest.java
@@ -208,7 +208,7 @@ public class VMParamsZkACLAndCredentialsProvidersTest extends SolrTestCaseJ4 {
       }
     } catch (NoAuthException nae) {
       if (create) {
-        nae.printStackTrace();
+        log.error("", nae);
         fail("No NoAuthException expected");
       }
       // expected
diff --git a/solr/core/src/test/org/apache/solr/cloud/ZkFailoverTest.java b/solr/core/src/test/org/apache/solr/cloud/ZkFailoverTest.java
index ed0e7b7..451dadf 100644
--- a/solr/core/src/test/org/apache/solr/cloud/ZkFailoverTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/ZkFailoverTest.java
@@ -27,9 +27,14 @@ import org.apache.solr.common.cloud.ZkStateReader;
 import org.apache.zookeeper.KeeperException;
 import org.junit.BeforeClass;
 import org.junit.Ignore;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.lang.invoke.MethodHandles;
 
 @Ignore // nocommit debug
 public class ZkFailoverTest extends SolrCloudTestCase {
+  private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
   @BeforeClass
   public static void setupCluster() throws Exception {
@@ -57,7 +62,7 @@ public class ZkFailoverTest extends SolrCloudTestCase {
         try {
           runner.start();
         } catch (Exception e) {
-          e.printStackTrace();
+          log.error("", e);
         }
         });
       threads[i].start();
diff --git a/solr/core/src/test/org/apache/solr/cloud/ZkShardTermsTest.java b/solr/core/src/test/org/apache/solr/cloud/ZkShardTermsTest.java
index 1f1b4b4..0d52a37 100644
--- a/solr/core/src/test/org/apache/solr/cloud/ZkShardTermsTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/ZkShardTermsTest.java
@@ -221,7 +221,7 @@ public class ZkShardTermsTest extends SolrCloudTestCase {
               zkShardTerms.setTermEqualsToLeader(replica);
             } catch (InterruptedException e) {
               ParWork.propagateInterrupt(e);
-              e.printStackTrace();
+              log.error("", e);
             }
           }
         }
diff --git a/solr/core/src/test/org/apache/solr/cloud/api/collections/TestRequestStatusCollectionAPI.java b/solr/core/src/test/org/apache/solr/cloud/api/collections/TestRequestStatusCollectionAPI.java
index 9ca0396..7bd3ed9 100644
--- a/solr/core/src/test/org/apache/solr/cloud/api/collections/TestRequestStatusCollectionAPI.java
+++ b/solr/core/src/test/org/apache/solr/cloud/api/collections/TestRequestStatusCollectionAPI.java
@@ -17,6 +17,7 @@
 package org.apache.solr.cloud.api.collections;
 
 import java.io.IOException;
+import java.lang.invoke.MethodHandles;
 import java.util.Arrays;
 import java.util.Map;
 
@@ -31,9 +32,12 @@ import org.apache.solr.common.params.ModifiableSolrParams;
 import org.apache.solr.common.util.NamedList;
 import org.junit.Ignore;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 @LuceneTestCase.Slow
 public class TestRequestStatusCollectionAPI extends SolrCloudBridgeTestCase {
+  private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
   public static final int MAX_WAIT_TIMEOUT_SECONDS = 90;
 
@@ -58,7 +62,7 @@ public class TestRequestStatusCollectionAPI extends SolrCloudBridgeTestCase {
     try {
       sendRequest(params);
     } catch (SolrServerException | IOException e) {
-      e.printStackTrace();
+      log.error("", e);
     }
 
     // Check for the request to be completed.
@@ -77,7 +81,7 @@ public class TestRequestStatusCollectionAPI extends SolrCloudBridgeTestCase {
       createResponse = sendStatusRequestWithRetry(params, MAX_WAIT_TIMEOUT_SECONDS);
       message = (String) createResponse.findRecursive("status","msg");
     } catch (SolrServerException | IOException e) {
-      e.printStackTrace();
+      log.error("", e);
     }
 
     assertEquals("found [1000] in completed tasks", message);
@@ -95,7 +99,7 @@ public class TestRequestStatusCollectionAPI extends SolrCloudBridgeTestCase {
       status = (NamedList) r.get("status");
       message = (String) status.get("msg");
     } catch (SolrServerException | IOException e) {
-      e.printStackTrace();
+      log.error("", e);
     }
 
     assertEquals("Did not find [9999999] in any tasks queue", message);
@@ -108,7 +112,7 @@ public class TestRequestStatusCollectionAPI extends SolrCloudBridgeTestCase {
     try {
       sendRequest(params);
     } catch (SolrServerException | IOException e) {
-      e.printStackTrace();
+      log.error("", e);
     }
 
     // Check for the request to be completed.
@@ -120,7 +124,7 @@ public class TestRequestStatusCollectionAPI extends SolrCloudBridgeTestCase {
       splitResponse = sendStatusRequestWithRetry(params, MAX_WAIT_TIMEOUT_SECONDS);
       message = (String) splitResponse.findRecursive("status","msg");
     } catch (SolrServerException | IOException e) {
-      e.printStackTrace();
+      log.error("", e);
     }
 
     assertEquals("found [1001] in completed tasks", message);
@@ -139,7 +143,7 @@ public class TestRequestStatusCollectionAPI extends SolrCloudBridgeTestCase {
     try {
       sendRequest(params);
     } catch (SolrServerException | IOException e) {
-      e.printStackTrace();
+      log.error("", e);
     }
 
     params = new ModifiableSolrParams();
@@ -151,7 +155,7 @@ public class TestRequestStatusCollectionAPI extends SolrCloudBridgeTestCase {
       NamedList<Object> response = sendStatusRequestWithRetry(params, MAX_WAIT_TIMEOUT_SECONDS);
       message = (String) response.findRecursive("status","msg");
     } catch (SolrServerException | IOException e) {
-      e.printStackTrace();
+      log.error("", e);
     }
 
     assertEquals("found [1002] in failed tasks", message);
@@ -169,7 +173,7 @@ public class TestRequestStatusCollectionAPI extends SolrCloudBridgeTestCase {
     try {
       r = sendRequest(params);
     } catch (SolrServerException | IOException e) {
-      e.printStackTrace();
+      log.error("", e);
     }
 
     assertEquals("Task with the same requestid already exists.", r.get("error"));
diff --git a/solr/core/src/test/org/apache/solr/handler/TestBlobHandler.java b/solr/core/src/test/org/apache/solr/handler/TestBlobHandler.java
index 7b74047..dfd761b 100644
--- a/solr/core/src/test/org/apache/solr/handler/TestBlobHandler.java
+++ b/solr/core/src/test/org/apache/solr/handler/TestBlobHandler.java
@@ -182,9 +182,9 @@ public class TestBlobHandler extends AbstractFullDistribZkTestBase {
     } catch (InterruptedException e) {
       ParWork.propagateInterrupt(e);
     } catch (ExecutionException e) {
-      e.printStackTrace();
+      log.error("", e);
     } catch (TimeoutException e) {
-      e.printStackTrace();
+      log.error("", e);
     }
   }
 }
diff --git a/solr/core/src/test/org/apache/solr/handler/admin/MBeansHandlerTest.java b/solr/core/src/test/org/apache/solr/handler/admin/MBeansHandlerTest.java
index 76b5136..b2f76a6 100644
--- a/solr/core/src/test/org/apache/solr/handler/admin/MBeansHandlerTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/admin/MBeansHandlerTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.solr.handler.admin;
 
+import java.lang.invoke.MethodHandles;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -35,8 +36,11 @@ import org.apache.solr.request.LocalSolrQueryRequest;
 import org.junit.BeforeClass;
 import org.junit.Ignore;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class MBeansHandlerTest extends SolrTestCaseJ4 {
+  private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
   @BeforeClass
   public static void beforeClass() throws Exception {
@@ -180,7 +184,7 @@ public class MBeansHandlerTest extends SolrTestCaseJ4 {
           bean.getSolrMetricsContext().getMetricsSnapshot();
         } catch (Exception e) {
           runSnapshots = false;
-          e.printStackTrace();
+          log.error("", e);
           fail("Exception getting metrics snapshot: " + e.toString());
         }
         try {
diff --git a/solr/core/src/test/org/apache/solr/schema/PreAnalyzedFieldTest.java b/solr/core/src/test/org/apache/solr/schema/PreAnalyzedFieldTest.java
index ae39ffa..a0c425f 100644
--- a/solr/core/src/test/org/apache/solr/schema/PreAnalyzedFieldTest.java
+++ b/solr/core/src/test/org/apache/solr/schema/PreAnalyzedFieldTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.solr.schema;
 
+import java.lang.invoke.MethodHandles;
 import java.util.Collections;
 import java.util.HashMap;
 
@@ -27,9 +28,12 @@ import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.schema.PreAnalyzedField.PreAnalyzedParser;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class PreAnalyzedFieldTest extends SolrTestCaseJ4 {
-  
+  private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
+
   private static final String[] valid = {
     "1 one two three",                       // simple parsing
     "1  one  two   three ",                  // spurious spaces
@@ -109,7 +113,7 @@ public class PreAnalyzedFieldTest extends SolrTestCaseJ4 {
         //System.out.println(" - toString: '" + sb.toString() + "'");
         assertEquals(validParsed[i], parser.toFormattedString(f));
       } catch (Exception e) {
-        e.printStackTrace();
+        log.error("", e);
         fail("Should pass: '" + s + "', exception: " + e);
       }
     }
diff --git a/solr/core/src/test/org/apache/solr/schema/TestBulkSchemaConcurrent.java b/solr/core/src/test/org/apache/solr/schema/TestBulkSchemaConcurrent.java
index 0777c43..e6171c9 100644
--- a/solr/core/src/test/org/apache/solr/schema/TestBulkSchemaConcurrent.java
+++ b/solr/core/src/test/org/apache/solr/schema/TestBulkSchemaConcurrent.java
@@ -72,7 +72,7 @@ public class TestBulkSchemaConcurrent extends SolrCloudBridgeTestCase {
             invokeBulkReplaceCall(finalI, errs);
             invokeBulkDeleteCall(finalI, errs);
           } catch (Exception e) {
-            e.printStackTrace();
+            log.error("", e);
           }
         }
       };
diff --git a/solr/core/src/test/org/apache/solr/search/TestSolrJ.java b/solr/core/src/test/org/apache/solr/search/TestSolrJ.java
index 041637b..05d1413 100644
--- a/solr/core/src/test/org/apache/solr/search/TestSolrJ.java
+++ b/solr/core/src/test/org/apache/solr/search/TestSolrJ.java
@@ -25,8 +25,11 @@ import org.apache.solr.client.solrj.impl.Http2SolrClient;
 import org.apache.solr.client.solrj.impl.HttpSolrClient;
 import org.apache.solr.common.SolrInputDocument;
 import org.apache.solr.util.RTimer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
+import java.lang.invoke.MethodHandles;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -34,6 +37,7 @@ import java.util.Random;
 
 
 public class TestSolrJ extends SolrTestCaseJ4 {
+  private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
   public void testSolrJ() throws Exception {
                           // docs, producers, connections, sleep_time
@@ -81,7 +85,7 @@ public class TestSolrJ extends SolrTestCaseJ4 {
             indexDocs(base, docsPerThread, maxSleep);
           } catch (Exception e) {
             //System.out.println("###############################CAUGHT EXCEPTION");
-            e.printStackTrace();
+            log.error("", e);
             ex = e;
           }
         }
@@ -154,7 +158,7 @@ public class TestSolrJ extends SolrTestCaseJ4 {
           Thread.sleep(sleep);
         } catch (InterruptedException e) {
           Thread.currentThread().interrupt();
-          e.printStackTrace();
+          log.error("", e);
           throw new RuntimeException(e);
         }
       }
diff --git a/solr/core/src/test/org/apache/solr/store/blockcache/BlockCacheTest.java b/solr/core/src/test/org/apache/solr/store/blockcache/BlockCacheTest.java
index 035dbe0..85fa9a0 100644
--- a/solr/core/src/test/org/apache/solr/store/blockcache/BlockCacheTest.java
+++ b/solr/core/src/test/org/apache/solr/store/blockcache/BlockCacheTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.solr.store.blockcache;
 
+import java.lang.invoke.MethodHandles;
 import java.util.Arrays;
 import java.util.Random;
 import java.util.concurrent.atomic.AtomicBoolean;
@@ -30,10 +31,13 @@ import org.apache.lucene.util.LuceneTestCase;
 import org.apache.solr.SolrTestCase;
 
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 @LuceneTestCase.Nightly // this test will spin up tons of netty threads due to HDFS,
 // should run nightly but should also track down the setting for that
 public class BlockCacheTest extends SolrTestCase {
+  private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
   @Test
   public void testBlockCache() {
@@ -158,7 +162,7 @@ public class BlockCacheTest extends SolrTestCase {
 
           } catch (Throwable e) {
             failed.set(true);
-            e.printStackTrace();
+            log.error("", e);
           }
         }
 
@@ -296,7 +300,7 @@ public class BlockCacheTest extends SolrTestCase {
             test(readsPerThread);
           } catch (Throwable e) {
             failed.set(true);
-            e.printStackTrace();
+            log.error("", e);
           }
         }
 
diff --git a/solr/core/src/test/org/apache/solr/store/blockcache/BlockDirectoryTest.java b/solr/core/src/test/org/apache/solr/store/blockcache/BlockDirectoryTest.java
index 34a5671..8419772 100644
--- a/solr/core/src/test/org/apache/solr/store/blockcache/BlockDirectoryTest.java
+++ b/solr/core/src/test/org/apache/solr/store/blockcache/BlockDirectoryTest.java
@@ -18,6 +18,7 @@ package org.apache.solr.store.blockcache;
 
 import java.io.File;
 import java.io.IOException;
+import java.lang.invoke.MethodHandles;
 import java.util.Map;
 import java.util.Random;
 
@@ -34,9 +35,12 @@ import org.apache.solr.SolrTestCaseJ4;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 // commented out on: 24-Dec-2018 @LuceneTestCase.BadApple(bugUrl="https://issues.apache.org/jira/browse/SOLR-12028") // 12-Jun-2018
 public class BlockDirectoryTest extends SolrTestCaseJ4 {
+  private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
   private static class MapperCache implements Cache {
     public Map<String, byte[]> map = Caffeine.newBuilder()
@@ -175,7 +179,7 @@ public class BlockDirectoryTest extends SolrTestCaseJ4 {
         assertInputsEquals(name, fsDir, directory);
       }
     } catch (Exception e) {
-      e.printStackTrace();
+      log.error("", e);
       fail("Test failed on pass [" + i + "]");
     }
     long t2 = System.nanoTime();
diff --git a/solr/core/src/test/org/apache/solr/store/hdfs/HdfsDirectoryTest.java b/solr/core/src/test/org/apache/solr/store/hdfs/HdfsDirectoryTest.java
index d97fb42..cb16e52 100644
--- a/solr/core/src/test/org/apache/solr/store/hdfs/HdfsDirectoryTest.java
+++ b/solr/core/src/test/org/apache/solr/store/hdfs/HdfsDirectoryTest.java
@@ -17,6 +17,7 @@
 package org.apache.solr.store.hdfs;
 
 import java.io.IOException;
+import java.lang.invoke.MethodHandles;
 import java.nio.file.FileAlreadyExistsException;
 import java.util.HashSet;
 import java.util.Random;
@@ -42,10 +43,13 @@ import org.junit.BeforeClass;
 import org.junit.Test;
 
 import com.carrotsearch.randomizedtesting.annotations.ThreadLeakFilters;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 @LuceneTestCase.Nightly // can be a slow test, > 20 seconds
 public class HdfsDirectoryTest extends SolrTestCaseJ4 {
-  
+  private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
+
   private static final int MAX_NUMBER_OF_WRITES = 10000;
   private static final int MIN_FILE_SIZE = 100;
   private static final int MAX_FILE_SIZE = 100000;
@@ -179,7 +183,7 @@ public class HdfsDirectoryTest extends SolrTestCaseJ4 {
         fsDir.close();
       }
     } catch (Exception e) {
-      e.printStackTrace();
+      log.error("", e);
       fail("Test failed on pass [" + i + "]");
     }
   }
diff --git a/solr/core/src/test/org/apache/solr/update/processor/AtomicUpdateProcessorFactoryTest.java b/solr/core/src/test/org/apache/solr/update/processor/AtomicUpdateProcessorFactoryTest.java
index 9f12341..4f60de6 100644
--- a/solr/core/src/test/org/apache/solr/update/processor/AtomicUpdateProcessorFactoryTest.java
+++ b/solr/core/src/test/org/apache/solr/update/processor/AtomicUpdateProcessorFactoryTest.java
@@ -17,6 +17,7 @@
 package org.apache.solr.update.processor;
 
 import java.io.IOException;
+import java.lang.invoke.MethodHandles;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
@@ -32,11 +33,14 @@ import org.apache.solr.response.SolrQueryResponse;
 import org.apache.solr.update.AddUpdateCommand;
 import org.junit.BeforeClass;
 import org.junit.Ignore;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * test class for @see AtomicUpdateProcessorFactory
  */
 public class AtomicUpdateProcessorFactoryTest extends SolrTestCaseJ4 {
+  private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
   @BeforeClass
   public static void beforeClass() throws Exception {
@@ -245,7 +249,7 @@ public class AtomicUpdateProcessorFactoryTest extends SolrTestCaseJ4 {
             proc.processAdd(cmd);
             proc.close();
           } catch (IOException e) {
-            e.printStackTrace();
+            log.error("", e);
           }
         }
       };
diff --git a/solr/core/src/test/org/apache/solr/update/processor/RoutedAliasUpdateProcessorTest.java b/solr/core/src/test/org/apache/solr/update/processor/RoutedAliasUpdateProcessorTest.java
index 73e2787..e4fe9d6 100644
--- a/solr/core/src/test/org/apache/solr/update/processor/RoutedAliasUpdateProcessorTest.java
+++ b/solr/core/src/test/org/apache/solr/update/processor/RoutedAliasUpdateProcessorTest.java
@@ -18,6 +18,7 @@
 package org.apache.solr.update.processor;
 
 import java.io.IOException;
+import java.lang.invoke.MethodHandles;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
@@ -58,12 +59,15 @@ import org.apache.solr.request.SolrQueryRequest;
 import org.apache.solr.response.SolrQueryResponse;
 import org.apache.solr.update.UpdateCommand;
 import org.junit.Ignore;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static java.util.concurrent.TimeUnit.NANOSECONDS;
 
 @org.apache.lucene.util.LuceneTestCase.AwaitsFix(bugUrl="https://issues.apache.org/jira/browse/SOLR-13696")
 @Ignore  // don't try too run abstract base class
 public abstract class RoutedAliasUpdateProcessorTest extends SolrCloudTestCase {
+  private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
   private static final String intField = "integer_i";
 
@@ -225,7 +229,7 @@ public abstract class RoutedAliasUpdateProcessorTest extends SolrCloudTestCase {
         try {
           Thread.sleep(500);
         } catch (InterruptedException e) {
-          e.printStackTrace();
+          log.error("", e);
           fail(e.getMessage());
         }
       }
diff --git a/solr/core/src/test/org/apache/solr/update/processor/TimeRoutedAliasUpdateProcessorTest.java b/solr/core/src/test/org/apache/solr/update/processor/TimeRoutedAliasUpdateProcessorTest.java
index e276f28..9720547 100644
--- a/solr/core/src/test/org/apache/solr/update/processor/TimeRoutedAliasUpdateProcessorTest.java
+++ b/solr/core/src/test/org/apache/solr/update/processor/TimeRoutedAliasUpdateProcessorTest.java
@@ -615,7 +615,7 @@ public class TimeRoutedAliasUpdateProcessorTest extends RoutedAliasUpdateProcess
       try {
         solrClient.query(col, params("q", "*:*","rows", "10"));
       } catch (SolrException e) {
-        e.printStackTrace();
+        log.error("", e);
         fail("Unable to query " + col);
       }
     }
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/LargeVolumeTestBase.java b/solr/solrj/src/test/org/apache/solr/client/solrj/LargeVolumeTestBase.java
index 22ac16c..2d5fe80 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/LargeVolumeTestBase.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/LargeVolumeTestBase.java
@@ -130,7 +130,7 @@ public abstract class LargeVolumeTestBase extends EmbeddedSolrServerTestBase
         }
 
       } catch (Exception e) {
-        e.printStackTrace();
+        log.error("", e);
         fail( getName() + "---" + e.getMessage() );
       }
     }
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/StartSolrJetty.java b/solr/solrj/src/test/org/apache/solr/client/solrj/StartSolrJetty.java
index f915300..feabba3 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/StartSolrJetty.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/StartSolrJetty.java
@@ -21,12 +21,18 @@ import org.eclipse.jetty.server.HttpConnectionFactory;
 import org.eclipse.jetty.server.Server;
 import org.eclipse.jetty.server.ServerConnector;
 import org.eclipse.jetty.webapp.WebAppContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.lang.invoke.MethodHandles;
 
 /**
  * @since solr 1.3
  */
 public class StartSolrJetty
 {
+  private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
+  
   public static void main( String[] args )
   {
     //System.setProperty("solr.solr.home", "../../../example/solr");
@@ -63,7 +69,7 @@ public class StartSolrJetty
       server.join();
     }
     catch (Exception e) {
-      e.printStackTrace();
+      log.error("", e);
       System.exit(100);
     }
   }
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/SolrExampleJettyTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/SolrExampleJettyTest.java
index 82ceac1..e5f38f2 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/SolrExampleJettyTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/SolrExampleJettyTest.java
@@ -31,10 +31,13 @@ import org.apache.solr.common.util.NamedList;
 import org.junit.BeforeClass;
 import org.junit.Ignore;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static org.apache.solr.common.util.Utils.fromJSONString;
 import java.io.IOException;
 import java.io.InputStream;
+import java.lang.invoke.MethodHandles;
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.List;
@@ -50,6 +53,7 @@ import java.util.stream.IntStream;
  */
 @SolrTestCase.SuppressSSL(bugUrl = "https://issues.apache.org/jira/browse/SOLR-5776")
 public class SolrExampleJettyTest extends SolrExampleTests {
+  private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
   @Test
   @Ignore // nocommit ~ debug
@@ -141,7 +145,7 @@ public class SolrExampleJettyTest extends SolrExampleTests {
         try {
           IOUtils.skip(body, 1024 * 1000);
         } catch (IOException e) {
-          e.printStackTrace();
+          log.error("", e);
         }
         return rsp.getResponse();
       }
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ConcurrentUpdateSolrClientTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ConcurrentUpdateSolrClientTest.java
index 2d3ae14..2ffab7f 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ConcurrentUpdateSolrClientTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ConcurrentUpdateSolrClientTest.java
@@ -23,6 +23,7 @@ import javax.servlet.http.HttpServletResponse;
 import java.io.EOFException;
 import java.io.IOException;
 import java.io.InputStream;
+import java.lang.invoke.MethodHandles;
 import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.Map;
@@ -45,9 +46,11 @@ import org.apache.solr.common.util.SolrNamedThreadFactory;
 import org.eclipse.jetty.servlet.ServletHolder;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class ConcurrentUpdateSolrClientTest extends SolrJettyTestBase {
-
+  private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
   /**
    * Mock endpoint where the CUSS being tested in this class sends requests.
    */
@@ -305,7 +308,7 @@ public class ConcurrentUpdateSolrClientTest extends SolrJettyTestBase {
           else
             cuss.request(req, this.collection);
         } catch (Throwable t) {
-          t.printStackTrace();
+          log.error("", t);
         }
       }      
     }    
diff --git a/solr/solrj/src/test/org/apache/solr/common/params/SolrParamTest.java b/solr/solrj/src/test/org/apache/solr/common/params/SolrParamTest.java
index fb8d5ec..d5e3470 100644
--- a/solr/solrj/src/test/org/apache/solr/common/params/SolrParamTest.java
+++ b/solr/solrj/src/test/org/apache/solr/common/params/SolrParamTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.solr.common.params;
 
+import java.lang.invoke.MethodHandles;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Iterator;
@@ -24,10 +25,13 @@ import java.util.Map;
 
 import org.apache.solr.SolrTestCase;
 import org.apache.solr.common.SolrException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  */
 public class SolrParamTest extends SolrTestCase {
+  private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
   public void testParamIterators() {
 
@@ -301,7 +305,7 @@ public class SolrParamTest extends SolrTestCase {
       return sx.code();
     }
     catch( Exception ex ) {
-      ex.printStackTrace();
+      log.error("", ex);
       return 500;
     }
     return 200;
diff --git a/solr/solrj/src/test/org/apache/solr/common/util/TestJavaBinCodec.java b/solr/solrj/src/test/org/apache/solr/common/util/TestJavaBinCodec.java
index d6cd3dc..2b73c9f 100644
--- a/solr/solrj/src/test/org/apache/solr/common/util/TestJavaBinCodec.java
+++ b/solr/solrj/src/test/org/apache/solr/common/util/TestJavaBinCodec.java
@@ -28,6 +28,8 @@ import org.apache.solr.util.ConcurrentLRUCache;
 import org.apache.solr.util.RTimer;
 import org.junit.Test;
 import org.noggit.CharArr;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.BufferedOutputStream;
 import java.io.ByteArrayInputStream;
@@ -36,6 +38,7 @@ import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.lang.invoke.MethodHandles;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Date;
@@ -45,6 +48,7 @@ import java.util.Map;
 import java.util.Random;
 
 public class TestJavaBinCodec extends SolrTestCaseJ4 {
+  private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
   private static final String SOLRJ_JAVABIN_BACKCOMPAT_BIN = "/solrj/javabin_backcompat.bin";
   private static final String BIN_FILE_LOCATION = "./solr/solrj/src/test-files/solrj/javabin_backcompat.bin";
@@ -606,7 +610,7 @@ public class TestJavaBinCodec extends SolrTestCaseJ4 {
         try {
           doDecode(buffers, iter, stringCache);
         } catch (IOException e) {
-          e.printStackTrace();
+          log.error("", e);
         }
       });
     }
diff --git a/solr/solrj/src/test/org/apache/solr/common/util/TestJsonRecordReader.java b/solr/solrj/src/test/org/apache/solr/common/util/TestJsonRecordReader.java
index 363c0cd..dc20291 100644
--- a/solr/solrj/src/test/org/apache/solr/common/util/TestJsonRecordReader.java
+++ b/solr/solrj/src/test/org/apache/solr/common/util/TestJsonRecordReader.java
@@ -18,6 +18,7 @@ package org.apache.solr.common.util;
 
 import java.io.IOException;
 import java.io.StringReader;
+import java.lang.invoke.MethodHandles;
 import java.lang.ref.WeakReference;
 import java.util.Arrays;
 import java.util.Collections;
@@ -28,9 +29,11 @@ import java.util.concurrent.atomic.AtomicReference;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.util.RecordingJSONParser;
-
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class TestJsonRecordReader extends SolrTestCaseJ4 {
+  private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
   public void testOneLevelSplit() throws IOException {
     String json = "{\n" +
@@ -727,7 +730,7 @@ public class TestJsonRecordReader extends SolrTestCaseJ4 {
       recordReader.streamRecords(parser, (record, path) -> {
       });   /*don't care*/
     } catch (RuntimeException e) {
-      parser.error("").printStackTrace();
+      log.error("", e);
       throw e;
     }
   }
diff --git a/solr/solrj/src/test/org/noggit/TestJSONParser.java b/solr/solrj/src/test/org/noggit/TestJSONParser.java
index 8b1ceb6..62a204c 100644
--- a/solr/solrj/src/test/org/noggit/TestJSONParser.java
+++ b/solr/solrj/src/test/org/noggit/TestJSONParser.java
@@ -19,12 +19,15 @@ package org.noggit;
 
 import java.io.IOException;
 import java.io.StringReader;
+import java.lang.invoke.MethodHandles;
 
 import org.apache.solr.SolrTestCaseJ4;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class TestJSONParser extends SolrTestCaseJ4 {
-
+  private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
   // these are to aid in debugging if an unexpected error occurs
   static int parserType;
   static int bufferSize;
@@ -203,8 +206,8 @@ public class TestJSONParser extends SolrTestCaseJ4 {
       } catch (JSONParser.ParseException ex) {
         // OK
       } catch (Throwable ex) {
-        ex.printStackTrace();
-        System.out.println(lastParser());
+        log.error("", e);
+        log.error(lastParser());
         throw new RuntimeException(ex);
       }
     }
diff --git a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java b/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java
index 43b797e..da7251c 100644
--- a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java
+++ b/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java
@@ -490,11 +490,9 @@ public abstract class AbstractFullDistribZkTestBase extends AbstractDistribZkTes
                 clients.add(client);
                 addReplicas.incrementAndGet();
               } catch (IOException e) {
-                e.printStackTrace();
                 throw new RuntimeException(e);
               } catch (Exception e) {
                 ParWork.propagateInterrupt(e);
-                e.printStackTrace();
                 throw new RuntimeException(e);
               }
             });
@@ -521,11 +519,9 @@ public abstract class AbstractFullDistribZkTestBase extends AbstractDistribZkTes
                 clients.add(client);
                 addReplicas.incrementAndGet();
               } catch (IOException e) {
-                e.printStackTrace();
                 throw new RuntimeException(e);
               } catch (Exception e) {
                 ParWork.propagateInterrupt(e);
-                e.printStackTrace();
                 throw new RuntimeException(e);
               }
             });
@@ -549,10 +545,8 @@ public abstract class AbstractFullDistribZkTestBase extends AbstractDistribZkTes
               clients.add(client);
               addReplicas.incrementAndGet();
             } catch (IOException e) {
-              e.printStackTrace();
               throw new RuntimeException(e);
             } catch (Exception e) {
-              e.printStackTrace();
               ParWork.propagateInterrupt(e);
               throw new RuntimeException(e);
             }
@@ -1648,7 +1642,7 @@ public abstract class AbstractFullDistribZkTestBase extends AbstractDistribZkTes
       try {
         commit();
       } catch (Throwable t) {
-        t.printStackTrace();
+        log.error("", t);
         // we don't care if this commit fails on some nodes
       }
 
diff --git a/solr/test-framework/src/java/org/apache/solr/cloud/ChaosMonkey.java b/solr/test-framework/src/java/org/apache/solr/cloud/ChaosMonkey.java
index cbd3d80..42f6a91 100644
--- a/solr/test-framework/src/java/org/apache/solr/cloud/ChaosMonkey.java
+++ b/solr/test-framework/src/java/org/apache/solr/cloud/ChaosMonkey.java
@@ -501,8 +501,7 @@ public class ChaosMonkey {
             //
           } catch (Exception e) {
             ParWork.propagateInterrupt(e);
-            // TODO Auto-generated catch block
-            e.printStackTrace();
+            log.error("", e);
           }
         }
         monkeyLog("finished");
diff --git a/solr/test-framework/src/java/org/apache/solr/cloud/StoppableSearchThread.java b/solr/test-framework/src/java/org/apache/solr/cloud/StoppableSearchThread.java
index 7f8d80a..54f99b1 100644
--- a/solr/test-framework/src/java/org/apache/solr/cloud/StoppableSearchThread.java
+++ b/solr/test-framework/src/java/org/apache/solr/cloud/StoppableSearchThread.java
@@ -55,10 +55,9 @@ class StoppableSearchThread extends AbstractFullDistribZkTestBase.StoppableThrea
       } catch (Exception e) {
         ParWork.propagateInterrupt(e);
         System.err.println("QUERY REQUEST FAILED:");
-        e.printStackTrace();
+        log.error("", e);
         if (e instanceof SolrServerException) {
-          System.err.println("ROOT CAUSE:");
-          ((SolrServerException) e).getRootCause().printStackTrace();
+          log.error("ROOTCAUSE", ((SolrServerException) e).getRootCause());
         }
         queryFails.incrementAndGet();
       }