diff --git a/test/testutils.py b/test/testutils.py
index fd4655a98e586938307c3a90f853e609b131da8b..3c46a0cc1c5b70d3864378f96e53d04a11bff0ae 100644
--- a/test/testutils.py
+++ b/test/testutils.py
@@ -35,12 +35,32 @@ def GetSourceDir():
   return os.environ.get("TOP_SRCDIR", ".")
 
 
+def _SetupLogging(verbose):
+  """Setupup logging infrastructure.
+
+  """
+  fmt = logging.Formatter("%(asctime)s: %(threadName)s"
+                          " %(levelname)s %(message)s")
+
+  if verbose:
+    handler = logging.StreamHandler()
+  else:
+    handler = logging.FileHandler(os.devnull, "a")
+
+  handler.setLevel(logging.NOTSET)
+  handler.setFormatter(fmt)
+
+  root_logger = logging.getLogger("")
+  root_logger.setLevel(logging.NOTSET)
+  root_logger.addHandler(handler)
+
+
 class GanetiTestProgram(unittest.TestProgram):
   def runTests(self):
-    """
+    """Runs all tests.
 
     """
-    logging.basicConfig(filename=os.devnull)
+    _SetupLogging("LOGTOSTDERR" in os.environ)
 
     sys.stderr.write("Running %s\n" % self.progName)
     sys.stderr.flush()