diff --git a/indra/cmake/run_build_test.py b/indra/cmake/run_build_test.py
index 210e43b2322788e17c980dcf430bebb8a3cc8920..ec5d33f902befe0a8d812ed08de4d0f6eb6b64e2 100755
--- a/indra/cmake/run_build_test.py
+++ b/indra/cmake/run_build_test.py
@@ -87,7 +87,6 @@ def main(command, arguments=[], libpath=[], vars={}):
         # might not exist; instead of KeyError, just use an empty string.
         dirs = os.environ.get(var, "").split(os.pathsep)
         # Append the sequence in libpath
-        log.info("%s += %r" % (var, libpath))
         for dir in libpath:
             # append system paths at the end
             if dir in ('/lib', '/usr/lib'):
@@ -105,16 +104,21 @@ def main(command, arguments=[], libpath=[], vars={}):
         # Now rebuild the path string. This way we use a minimum of separators
         # -- and we avoid adding a pointless separator when libpath is empty.
         os.environ[var] = os.pathsep.join(clean_dirs)
-        log.info("%s = %r" % (var, os.environ[var]))
+        # This output format is intended to make it straightforward to copy
+        # the variable settings and the command itself from the build output
+        # and paste the whole thing at a command prompt to rerun it manually.
+        log.info("%s='%s' \\" % (var, os.environ[var]))
     # Now handle arbitrary environment variables. The tricky part is ensuring
     # that all the keys and values we try to pass are actually strings.
     if vars:
-         log.info("Setting: %s" % ("\n".join(["%s=%s" % (key, value) for key, value in vars.iteritems()])))
+        for key, value in vars.items():
+            # As noted a few lines above, facilitate copy-paste rerunning.
+            log.info("%s='%s' \\" % (key, value))
     os.environ.update(dict([(str(key), str(value)) for key, value in vars.iteritems()]))
     # Run the child process.
     command_list = [command]
     command_list.extend(arguments)
-    log.info("Running: %s" % " ".join(command_list))
+    log.info(" ".join((("'%s'" % w) if ' ' in w else w) for w in command_list))
     # Make sure we see all relevant output *before* child-process output.
     sys.stdout.flush()
     try:
@@ -305,8 +309,11 @@ def get_windows_table():
 
     return _windows_table
 
-log=logging.getLogger(__name__)
-logging.basicConfig()
+# Use this instead of logging.basicConfig() because the latter prefixes
+# every line of output with INFO:__main__:...
+log=logging.getLogger()
+log.setLevel(logging.INFO)
+log.addHandler(logging.StreamHandler())
 
 if __name__ == "__main__":
     import argparse