pre-release updates, bug fixes
diff --git a/run_test.py b/run_test.py
index 1841bc8..2e01394 100755
--- a/run_test.py
+++ b/run_test.py
@@ -28,19 +28,21 @@
 logger = logging.getLogger("io-perf-tool")
 
 
-def setup_logger(logger, level=logging.DEBUG):
-    logger.setLevel(level)
-    ch = logging.StreamHandler()
-    ch.setLevel(level)
-    logger.addHandler(ch)
+def setup_logger(logger, level=logging.DEBUG, log_fname=None):
+    # logger.setLevel(level)
+    sh = logging.StreamHandler()
+    sh.setLevel(level)
 
     log_format = '%(asctime)s - %(levelname)-6s - %(name)s - %(message)s'
     formatter = logging.Formatter(log_format,
                                   "%H:%M:%S")
-    ch.setFormatter(formatter)
+    sh.setFormatter(formatter)
+    logger.addHandler(sh)
 
-    # logger.setLevel(logging.INFO)
-    # logger.addHandler(logging.FileHandler('log.txt'))
+    if log_fname is not None:
+        fh = logging.FileHandler(log_fname)
+        fh.setLevel(logging.DEBUG)
+        logger.addHandler(fh)
 
 
 def format_result(res, formatter):
@@ -403,10 +405,11 @@
             report_stage
         ]
 
-    level = logging.DEBUG if opts.extra_logs else logging.WARNING
-    setup_logger(logger, level)
-
     load_config(opts.config_file)
+
+    level = logging.DEBUG if opts.extra_logs else logging.WARNING
+    setup_logger(logger, level, cfg_dict['log_file'])
+
     logger.info("Store all info into {0}".format(cfg_dict['var_dir']))
 
     ctx = Context()