autotest: Set other logging handlers when require_logfile is not set.

BUG=chromium:741829
TEST=Ran ./site_utils/run_suite.py --build *** --require_logfile vs
./site_utils/run_suite.py --build *** vs
./site_utils/run_suite.py --require_logfile.

Change-Id: I0c7f329508de2dfcca245e6442a3d50f8b6c3334
Reviewed-on: https://chromium-review.googlesource.com/569062
Commit-Queue: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Trybot-Ready: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Richard Barnette <jrbarnette@google.com>
diff --git a/site_utils/run_suite.py b/site_utils/run_suite.py
index d03a929..b7cc906 100755
--- a/site_utils/run_suite.py
+++ b/site_utils/run_suite.py
@@ -279,7 +279,7 @@
         help=('A dict of args passed all the way to each individual test that '
               'will be actually ran.'))
     parser.add_argument(
-        '--require_log', action='store_true',
+        '--require_logfile', action='store_true',
         help=('Stream logs of run_suite.py to a local file named '
               'run_suite-<build name>.log.'))
 
@@ -1574,16 +1574,8 @@
     if options.use_suite_attr:
         options = change_options_for_suite_attr(options)
 
-    log_name = 'run_suite-default.log'
-    if options.build:
-        # convert build name from containing / to containing only _
-        log_name = 'run_suite-%s.log' % options.build.replace('/', '_')
-        log_dir = os.path.join(common.autotest_dir, 'logs')
-        if os.path.exists(log_dir):
-            log_name = os.path.join(log_dir, log_name)
-
-    if options.require_log:
-        utils.setup_logging(logfile=log_name)
+    log_name = _get_log_name(options)
+    utils.setup_logging(logfile=log_name)
 
     if not options.bypass_labstatus and not options.web:
         utils.check_lab_status(options.build)
@@ -1652,6 +1644,26 @@
         return _handle_job_wait(afe, job_id, options, job_timer, is_real_time)
 
 
+def _get_log_name(options):
+    """Return local log file's name.
+
+    @param options:         Parsed options.
+
+    @return log_name, a string file name.
+    """
+    if options.require_logfile:
+        # options.build is verified to exist in verify_options.
+        # convert build name from containing / to containing only _.
+        log_name = 'run_suite-%s.log' % options.build.replace('/', '_')
+        log_dir = os.path.join(common.autotest_dir, 'logs')
+        if os.path.exists(log_dir):
+            log_name = os.path.join(log_dir, log_name)
+
+        return log_name
+    else:
+        return None
+
+
 def _create_afe(options):
     """Return an afe instance based on options.