Index: run.py
===================================================================
--- run.py	(revision 05a9d29f434dd8684ab874ce9ac9c205aa00683b)
+++ run.py	(revision 64ca561b6b264f63b4d7d09a6582f1f3330ae720)
@@ -17,22 +17,24 @@
 import sys
 import imp
+import logging
+import logging.config
+
 from contextlib import contextmanager
 from os.path import abspath, dirname, join as joinpath
 
-class TeeStream:
-    def __init__(self, filename):
-        self.logfile = open(filename, 'a')
-        self.console = sys.stderr
-    def write(self, buf):
-        self.logfile.write(buf)
-        self.console.write(buf)
 
-def tee_logging():
-    import logging
-    stream = TeeStream(os.path.join(os.path.expanduser("~"), 'sasview.log'))
-    logging.basicConfig(level=logging.INFO,
-                        format='%(asctime)s %(levelname)s %(message)s',
-                        stream=stream)
+LOGGER_CONFIG_FILE = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'sasview/logging.ini')
+logging.config.fileConfig(LOGGER_CONFIG_FILE, disable_existing_loggers=True)
+logger = logging.getLogger(__name__)
 
+def update_all_logs_to_debug(logger):
+    '''
+    This updates all loggers and respective handlers to DEBUG
+    '''
+    for handler in logger.handlers or logger.parent.handlers:
+        handler.setLevel(logging.DEBUG)
+    for name,_ in logging.Logger.manager.loggerDict.items():
+        logging.getLogger(name).setLevel(logging.DEBUG)
+        
 def addpath(path):
     """
@@ -152,6 +154,7 @@
 
 if __name__ == "__main__":
+    update_all_logs_to_debug(logger)
     prepare()
-    tee_logging()
     from sas.sasview.sasview import run
     run()
+    
Index: sasview/logging.ini
===================================================================
--- sasview/logging.ini	(revision 463e7ffce130ae386f93cd18b87a1120743e88b5)
+++ sasview/logging.ini	(revision 64ca561b6b264f63b4d7d09a6582f1f3330ae720)
@@ -3,5 +3,7 @@
 ################################### LOGGING ###################################
 ###############################################################################
+# Main logger for SASView
 
+# SEE: https://docs.python.org/2/library/logging.html#logrecord-attributes
 [formatters]
 keys=simple,detailed
@@ -9,4 +11,5 @@
 [formatter_simple]
 #format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
+#format=%(asctime)s - %(levelname)s : %(name)s:%(pathname)s:%(lineno)4d: %(message)s
 format=%(asctime)s - %(levelname)s : %(name)s:%(lineno)4d: %(message)s
 datefmt=%H:%M:%S
@@ -37,10 +40,22 @@
 
 [loggers]
-keys=root,sasgui,sascalc
+keys=root,saspr,sasgui,sascalc,sasmodels
 
 [logger_root]
-level=DEBUG
+level=INFO
 formatter=default
 handlers=console,log_file
+
+[logger_sasmodels]
+level=INFO
+qualname=sas.models
+handlers=console,log_file
+propagate=0
+
+[logger_saspr]
+level=INFO
+qualname=sas.pr
+handlers=console,log_file
+propagate=0
 
 [logger_sasgui]
@@ -48,8 +63,10 @@
 qualname=sas.sasgui
 handlers=console,log_file
- 
+propagate=0
+
 [logger_sascalc]
-level=DEBUG
+level=INFO
 qualname=sas.sascalc
 handlers=console,log_file
+propagate=0
 
Index: sasview/sasview.py
===================================================================
--- sasview/sasview.py	(revision 463e7ffce130ae386f93cd18b87a1120743e88b5)
+++ sasview/sasview.py	(revision 64ca561b6b264f63b4d7d09a6582f1f3330ae720)
@@ -17,16 +17,15 @@
 import traceback
 
-
-LOGGER_CONFIG_FILE = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'logging.ini')
-logging.config.fileConfig(LOGGER_CONFIG_FILE, disable_existing_loggers=False)
-logging.captureWarnings(True)
 logger = logging.getLogger(__name__)
-
+if not logger.root.handlers:
+    print "This should NOT appear in called from run.py: %s", logger.handlers
+    LOGGER_CONFIG_FILE = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'logging.ini')
+    logging.config.fileConfig(LOGGER_CONFIG_FILE, disable_existing_loggers=False)
+    logging.captureWarnings(True)
 
 # Log the start of the session
-logging.info(" --- SasView session started ---")
-
+logger.info(" --- SasView session started ---")
 # Log the python version
-logging.info("Python: %s" % sys.version)
+logger.info("Python: %s" % sys.version)
 
 # Allow the dynamic selection of wxPython via an environment variable, when devs
@@ -37,21 +36,21 @@
 WX_ENV_VAR = "SASVIEW_WX_VERSION"
 if WX_ENV_VAR in os.environ:
-    logging.info("You have set the %s environment variable to %s." % \
+    logger.info("You have set the %s environment variable to %s." % \
                  (WX_ENV_VAR, os.environ[WX_ENV_VAR]))
     import wxversion
     if wxversion.checkInstalled(os.environ[WX_ENV_VAR]):
-        logging.info("Version %s of wxPython is installed, so using that version." % os.environ[WX_ENV_VAR])
+        logger.info("Version %s of wxPython is installed, so using that version." % os.environ[WX_ENV_VAR])
         wxversion.select(os.environ[WX_ENV_VAR])
     else:
-        logging.error("Version %s of wxPython is not installed, so using default version." % os.environ[WX_ENV_VAR])
+        logger.error("Version %s of wxPython is not installed, so using default version." % os.environ[WX_ENV_VAR])
 else:
-    logging.info("You have not set the %s environment variable, so using default version of wxPython." % WX_ENV_VAR)
+    logger.info("You have not set the %s environment variable, so using default version of wxPython." % WX_ENV_VAR)
 
 import wx
 
 try:
-    logging.info("Wx version: %s" % wx.__version__)
+    logger.info("Wx version: %s" % wx.__version__)
 except:
-    logging.error("Wx version: error reading version")
+    logger.error("Wx version: error reading version")
 
 import wxcruft
@@ -106,6 +105,6 @@
             self.gui.add_perspective(fitting_plug)
         except Exception:
-            logging.error("%s: could not find Fitting plug-in module"% APP_NAME)
-            logging.error(traceback.format_exc())
+            logger.error("%s: could not find Fitting plug-in module"% APP_NAME)
+            logger.error(traceback.format_exc())
 
         # P(r) perspective
@@ -115,6 +114,6 @@
             self.gui.add_perspective(pr_plug)
         except:
-            logging.error("%s: could not find P(r) plug-in module"% APP_NAME)
-            logging.error(traceback.format_exc())
+            logger.error("%s: could not find P(r) plug-in module"% APP_NAME)
+            logger.error(traceback.format_exc())
 
         #Invariant perspective
@@ -124,7 +123,7 @@
             self.gui.add_perspective(invariant_plug)
         except Exception as e :
-            logging.error("%s: could not find Invariant plug-in module"% \
+            logger.error("%s: could not find Invariant plug-in module"% \
                           APP_NAME)
-            logging.error(traceback.format_exc())
+            logger.error(traceback.format_exc())
 
         # Corfunc perspective
@@ -134,5 +133,5 @@
             self.gui.add_perspective(corfunc_plug)
         except:
-            logging.error("Unable to load corfunc module")
+            logger.error("Unable to load corfunc module")
 
         #Calculator perspective
@@ -142,7 +141,7 @@
             self.gui.add_perspective(calculator_plug)
         except:
-            logging.error("%s: could not find Calculator plug-in module"% \
+            logger.error("%s: could not find Calculator plug-in module"% \
                                                         APP_NAME)
-            logging.error(traceback.format_exc())
+            logger.error(traceback.format_exc())
 
         # File converter tool
@@ -152,7 +151,7 @@
             self.gui.add_perspective(converter_plug)
         except:
-            logging.error("%s: could not find File Converter plug-in module"% \
+            logger.error("%s: could not find File Converter plug-in module"% \
                                                         APP_NAME)
-            logging.error(traceback.format_exc())
+            logger.error(traceback.format_exc())
 
 
Index: src/sas/sascalc/data_util/calcthread.py
===================================================================
--- src/sas/sascalc/data_util/calcthread.py	(revision 463e7ffce130ae386f93cd18b87a1120743e88b5)
+++ src/sas/sascalc/data_util/calcthread.py	(revision 64ca561b6b264f63b4d7d09a6582f1f3330ae720)
@@ -246,5 +246,4 @@
             except Exception:
                 pass
-        import logging
         logger.error(traceback.format_exc())
         #print 'CalcThread exception',
Index: src/sas/sasgui/guiframe/config.py
===================================================================
--- src/sas/sasgui/guiframe/config.py	(revision 463e7ffce130ae386f93cd18b87a1120743e88b5)
+++ src/sas/sasgui/guiframe/config.py	(revision 64ca561b6b264f63b4d7d09a6582f1f3330ae720)
@@ -10,5 +10,4 @@
 
 logger = logging.getLogger(__name__)
-
 
 # Version of the application
Index: src/sas/sasgui/guiframe/gui_manager.py
===================================================================
--- src/sas/sasgui/guiframe/gui_manager.py	(revision 463e7ffce130ae386f93cd18b87a1120743e88b5)
+++ src/sas/sasgui/guiframe/gui_manager.py	(revision 64ca561b6b264f63b4d7d09a6582f1f3330ae720)
@@ -51,5 +51,4 @@
 
 warnings.simplefilter("ignore")
-
 
 def get_app_dir():
Index: test/logging.ini
===================================================================
--- test/logging.ini	(revision c155a16ca3fb1da7057f151c62510d780700b9e8)
+++ test/logging.ini	(revision 64ca561b6b264f63b4d7d09a6582f1f3330ae720)
@@ -35,7 +35,7 @@
 
 [loggers]
-keys=root,sas
+keys=test,sas
 
-[logger_root]
+[logger_test]
 level=DEBUG
 formatter=default
Index: test/run_one.py
===================================================================
--- test/run_one.py	(revision 463e7ffce130ae386f93cd18b87a1120743e88b5)
+++ test/run_one.py	(revision 64ca561b6b264f63b4d7d09a6582f1f3330ae720)
@@ -9,8 +9,10 @@
 
 import logging
-import logging.config
-LOGGER_CONFIG_FILE = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'logging.ini')
-logging.config.fileConfig(LOGGER_CONFIG_FILE, disable_existing_loggers=False)
 logger = logging.getLogger(__name__)
+if not logger.root.handlers:
+    import logging.config
+    LOGGER_CONFIG_FILE = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'logging.ini')
+    logging.config.fileConfig(LOGGER_CONFIG_FILE, disable_existing_loggers=False)
+
 
 run_py = joinpath(dirname(dirname(abspath(__file__))), 'run.py')
