Index: src/sas/sasgui/perspectives/calculator/calculator.py
===================================================================
--- src/sas/sasgui/perspectives/calculator/calculator.py	(revision a0c1e1de9eb99665b31c85c4fddcfca740db719c)
+++ src/sas/sasgui/perspectives/calculator/calculator.py	(revision c155a16ca3fb1da7057f151c62510d780700b9e8)
@@ -28,4 +28,6 @@
 import logging
 
+logger = logging.getLogger()
+
 class Plugin(PluginBase):
     """
@@ -36,5 +38,5 @@
         PluginBase.__init__(self, name="Calculator")
         # Log startup
-        logging.info("Calculator plug-in started")
+        logger.info("Calculator plug-in started")
         self.sub_menu = "Tool"
         self.data_edit_frame = None
Index: src/sas/sasgui/perspectives/calculator/gen_scatter_panel.py
===================================================================
--- src/sas/sasgui/perspectives/calculator/gen_scatter_panel.py	(revision 0f7c930fc2c325971c76a60d39f2e3719b8143a3)
+++ src/sas/sasgui/perspectives/calculator/gen_scatter_panel.py	(revision c155a16ca3fb1da7057f151c62510d780700b9e8)
@@ -38,4 +38,6 @@
 from sas.sasgui.guiframe.events import NewPlotEvent
 from sas.sasgui.guiframe.documentation_window import DocumentationWindow
+
+logger = logging.getLogger()
 
 _BOX_WIDTH = 76
@@ -699,5 +701,5 @@
                 ax = Axes3D(panel.figure)
             except:
-                logging.error("PlotPanel could not import Axes3D")
+                logger.error("PlotPanel could not import Axes3D")
                 raise
         panel.dimension = 3
@@ -1344,5 +1346,5 @@
             msg = "OMF Panel: %s" % sys.exc_value
             infor = 'Error'
-            #logging.error(msg)
+            #logger.error(msg)
             if self.parent.parent != None:
                 # inform msg to wx
@@ -1696,5 +1698,5 @@
                 msg = "%s cannot write %s\n" % ('Generic Scattering', str(path))
                 infor = 'Error'
-                #logging.error(msg)
+                #logger.error(msg)
                 if self.parent.parent != None:
                     # inform msg to wx
Index: src/sas/sasgui/perspectives/calculator/model_editor.py
===================================================================
--- src/sas/sasgui/perspectives/calculator/model_editor.py	(revision ddbac6633a1e7ec42b99bb39f46b9889ccf26084)
+++ src/sas/sasgui/perspectives/calculator/model_editor.py	(revision c155a16ca3fb1da7057f151c62510d780700b9e8)
@@ -32,4 +32,6 @@
 from sas.sasgui.guiframe.documentation_window import DocumentationWindow
 from .pyconsole import show_model_output, check_model
+
+logger = logging.getLogger()
 
 
@@ -985,5 +987,5 @@
                 exec "from %s import Model" % name
             except:
-                logging.error(sys.exc_value)
+                logger.error(sys.exc_value)
 
         # Prepare the messagebox
Index: src/sas/sasgui/perspectives/calculator/resolution_calculator_panel.py
===================================================================
--- src/sas/sasgui/perspectives/calculator/resolution_calculator_panel.py	(revision a0c1e1de9eb99665b31c85c4fddcfca740db719c)
+++ src/sas/sasgui/perspectives/calculator/resolution_calculator_panel.py	(revision c155a16ca3fb1da7057f151c62510d780700b9e8)
@@ -34,4 +34,6 @@
 from sas.sasgui.perspectives.calculator import calculator_widgets as widget
 from sas.sasgui.guiframe.documentation_window import DocumentationWindow
+
+logger = logging.getLogger()
 
 _BOX_WIDTH = 100
@@ -1098,5 +1100,5 @@
                 new_string.append(value)
             except:
-                logging.error(sys.exc_value)
+                logger.error(sys.exc_value)
 
         return new_string
@@ -1140,5 +1142,5 @@
                         return out
                 except:
-                    logging.error(sys.exc_value)
+                    logger.error(sys.exc_value)
 
     def _on_xy_coordinate(self, event=None):
@@ -1318,5 +1320,5 @@
                 except:
                     # Skip non-data lines
-                    logging.error(sys.exc_value)
+                    logger.error(sys.exc_value)
 
             return [wavelength, intensity]
Index: src/sas/sasgui/perspectives/corfunc/corfunc.py
===================================================================
--- src/sas/sasgui/perspectives/corfunc/corfunc.py	(revision 1dc8ec9bbfd72210acd49400626adfb8eb6c3c87)
+++ src/sas/sasgui/perspectives/corfunc/corfunc.py	(revision c155a16ca3fb1da7057f151c62510d780700b9e8)
@@ -20,4 +20,5 @@
 from plot_labels import *
 
+logger = logging.getLogger()
 
 class Plugin(PluginBase):
@@ -29,5 +30,5 @@
     def __init__(self):
         PluginBase.__init__(self, name="Correlation Function")
-        logging.info("Correlation function plug-in started")
+        logger.info("Correlation function plug-in started")
         self._always_active = True
         self.state_reader = Reader(self.set_state)
Index: src/sas/sasgui/perspectives/corfunc/corfunc_state.py
===================================================================
--- src/sas/sasgui/perspectives/corfunc/corfunc_state.py	(revision ae9b8bf0596d163a9011e6b945a6fb09f4b36456)
+++ src/sas/sasgui/perspectives/corfunc/corfunc_state.py	(revision c155a16ca3fb1da7057f151c62510d780700b9e8)
@@ -13,4 +13,6 @@
 from sas.sascalc.dataloader.loader import Loader
 
+logger = logging.getLogger()
+
 CORNODE_NAME = 'corfunc'
 CANSAS_NS = 'cansas1d/1.0'
@@ -216,5 +218,5 @@
                     msg = ("CorfuncState.fromXML: Could not read timestamp",
                         "\n{}").format(sys.exc_value)
-                    logging.error(msg)
+                    logger.error(msg)
 
             # Parse current state
@@ -360,4 +362,4 @@
             msg = "XML document does not contain CorfuncState information\n{}"
             msg.format(sys.exc_value)
-            logging.info(msg)
+            logger.info(msg)
         return state
Index: src/sas/sasgui/perspectives/file_converter/file_converter.py
===================================================================
--- src/sas/sasgui/perspectives/file_converter/file_converter.py	(revision ba65aff97e4c9511e2e199a78137312a6adc403d)
+++ src/sas/sasgui/perspectives/file_converter/file_converter.py	(revision c155a16ca3fb1da7057f151c62510d780700b9e8)
@@ -6,4 +6,6 @@
 from sas.sasgui.guiframe.plugin_base import PluginBase
 from sas.sasgui.perspectives.file_converter.converter_panel import ConverterWindow
+
+logger = logging.getLogger()
 
 class Plugin(PluginBase):
@@ -15,5 +17,5 @@
     def __init__(self):
         PluginBase.__init__(self, name="File Converter")
-        logging.info("File Converter plug-in started")
+        logger.info("File Converter plug-in started")
         self._sub_menu = "Tool"
         self.converter_frame = None
Index: src/sas/sasgui/perspectives/fitting/basepage.py
===================================================================
--- src/sas/sasgui/perspectives/fitting/basepage.py	(revision b301db9771a6b47f4e6cab8b5e980f14f16dc65a)
+++ src/sas/sasgui/perspectives/fitting/basepage.py	(revision c155a16ca3fb1da7057f151c62510d780700b9e8)
@@ -34,4 +34,5 @@
 from sas.sasgui.guiframe.documentation_window import DocumentationWindow
 
+logger = logging.getLogger()
 
 (PageInfoEvent, EVT_PAGE_INFO) = wx.lib.newevent.NewEvent()
@@ -782,5 +783,5 @@
                 except Exception:
                     # Skip non-data lines
-                    logging.error(traceback.format_exc())
+                    logger.error(traceback.format_exc())
             return numpy.array(angles), numpy.array(weights)
         except:
@@ -1304,5 +1305,5 @@
                     [state.values, state.weights]
             except Exception:
-                logging.error(traceback.format_exc())
+                logger.error(traceback.format_exc())
             selection = self._find_polyfunc_selection(disp_model)
             for list in self.fittable_param:
@@ -1321,5 +1322,5 @@
                             list[6].Disable()
                         except Exception:
-                            logging.error(traceback.format_exc())
+                            logger.error(traceback.format_exc())
             # For array, disable all fixed params
             if selection == 1:
@@ -1330,5 +1331,5 @@
                             item[2].Disable()
                         except Exception:
-                            logging.error(traceback.format_exc())
+                            logger.error(traceback.format_exc())
 
     def _selectDlg(self):
@@ -1464,5 +1465,5 @@
                 self.Refresh()
 
-        # logging.info("is_modified flag set to %g",is_modified)
+        # logger.info("is_modified flag set to %g",is_modified)
         return is_modified
 
@@ -1569,5 +1570,5 @@
             self.save_current_state()
         except Exception:
-            logging.error(traceback.format_exc())
+            logger.error(traceback.format_exc())
 
         return flag, is_modified
@@ -2384,5 +2385,5 @@
                     self.model.set_dispersion(p, disp_model)
                 except Exception:
-                    logging.error(traceback.format_exc())
+                    logger.error(traceback.format_exc())
 
         # save state into
@@ -2499,5 +2500,5 @@
             self.Refresh()
         except Exception:
-            logging.error(traceback.format_exc())
+            logger.error(traceback.format_exc())
             # Error msg
             msg = "Error occurred:"
@@ -2600,5 +2601,5 @@
                 del self.state.model._persistency_dict[name.split('.')[0]]
         except Exception:
-            logging.error(traceback.format_exc())
+            logger.error(traceback.format_exc())
 
     def _lay_out(self):
@@ -2742,5 +2743,5 @@
             except Exception:
                 # Not for control panels
-                logging.error(traceback.format_exc())
+                logger.error(traceback.format_exc())
         # Make sure the resduals plot goes to the last
         if res_item is not None:
@@ -3075,5 +3076,5 @@
                     disfunc = str(item[7].GetValue())
             except Exception:
-                logging.error(traceback.format_exc())
+                logger.error(traceback.format_exc())
 
             # 2D
@@ -3118,5 +3119,5 @@
                         disfunc += ' ' + str(weight)
             except Exception:
-                logging.error(traceback.format_exc())
+                logger.error(traceback.format_exc())
             content += name + ',' + str(check) + ',' + value + disfunc + ',' + \
                        bound_lo + ',' + bound_hi + ':'
@@ -3389,5 +3390,5 @@
 
         except Exception:
-            logging.error(traceback.format_exc())
+            logger.error(traceback.format_exc())
             print "Error in BasePage._paste_poly_help: %s" % \
                   sys.exc_info()[1]
Index: src/sas/sasgui/perspectives/fitting/fitting.py
===================================================================
--- src/sas/sasgui/perspectives/fitting/fitting.py	(revision 4c5098cac470ea0a367a8f92be0ed0ac428bcc12)
+++ src/sas/sasgui/perspectives/fitting/fitting.py	(revision c155a16ca3fb1da7057f151c62510d780700b9e8)
@@ -48,4 +48,6 @@
 
 from . import models
+
+logger = logging.getLogger()
 
 MAX_NBR_DATA = 4
@@ -119,5 +121,5 @@
         self.page_finder = {}
         # Log startup
-        logging.info("Fitting plug-in started")
+        logger.info("Fitting plug-in started")
         self.batch_capable = self.get_batch_capable()
 
@@ -346,5 +348,5 @@
                                 page.formfactorbox.SetLabel(current_val)
         except:
-            logging.error("update_custom_combo: %s", sys.exc_value)
+            logger.error("update_custom_combo: %s", sys.exc_value)
 
     def set_edit_menu(self, owner):
@@ -586,5 +588,5 @@
                 msg = "Fitting: cannot deal with the theory received"
                 evt = StatusEvent(status=msg, info="error")
-                logging.error("set_theory " + msg + "\n" + str(sys.exc_value))
+                logger.error("set_theory " + msg + "\n" + str(sys.exc_value))
                 wx.PostEvent(self.parent, evt)
 
@@ -1806,5 +1808,5 @@
         Handle exception from calculator by posting it as an error.
         """
-        logging.error("".join(traceback.format_exception(etype, value, tb)))
+        logger.error("".join(traceback.format_exception(etype, value, tb)))
         msg = traceback.format_exception(etype, value, tb, limit=1)
         evt = StatusEvent(status="".join(msg), type="stop", info="error")
Index: src/sas/sasgui/perspectives/fitting/models.py
===================================================================
--- src/sas/sasgui/perspectives/fitting/models.py	(revision e92a35222de59b469e74be44064685ec4edc7c19)
+++ src/sas/sasgui/perspectives/fitting/models.py	(revision c155a16ca3fb1da7057f151c62510d780700b9e8)
@@ -18,4 +18,6 @@
 from sas.sasgui.guiframe.CategoryInstaller import CategoryInstaller
 from sasmodels.sasview_model import load_custom_model, load_standard_models
+
+logger = logging.getLogger()
 
 
@@ -168,10 +170,10 @@
     if not os.path.isdir(dir):
         msg = "SasView couldn't locate Model plugin folder %r." % dir
-        logging.warning(msg)
+        logger.warning(msg)
         return {}
 
     plugin_log("looking for models in: %s" % str(dir))
     #compile_file(dir)  #always recompile the folder plugin
-    logging.info("plugin model dir: %s" % str(dir))
+    logger.info("plugin model dir: %s" % str(dir))
 
     plugins = {}
@@ -188,5 +190,5 @@
                 msg += "\nwhile accessing model in %r" % path
                 plugin_log(msg)
-                logging.warning("Failed to load plugin %r. See %s for details"
+                logger.warning("Failed to load plugin %r. See %s for details"
                                 % (path, PLUGIN_LOG))
             
@@ -261,5 +263,5 @@
         if self.is_changed():
             return  _findModels(dir)
-        logging.info("plugin model : %s" % str(temp))
+        logger.info("plugin model : %s" % str(temp))
         return temp
 
Index: src/sas/sasgui/perspectives/fitting/pagestate.py
===================================================================
--- src/sas/sasgui/perspectives/fitting/pagestate.py	(revision 27109e5cd4b7a9b36dd9bb6e66db62057374322b)
+++ src/sas/sasgui/perspectives/fitting/pagestate.py	(revision c155a16ca3fb1da7057f151c62510d780700b9e8)
@@ -33,4 +33,6 @@
 from sas.sascalc.dataloader.data_info import Data2D, Collimation, Detector
 from sas.sascalc.dataloader.data_info import Process, Aperture
+
+logger = logging.getLogger()
 
 # Information to read/write state as xml
@@ -395,5 +397,5 @@
                     msg = "Save state does not have enough information to load"
                     msg += " the all of the data."
-                    logging.warning(msg=msg)
+                    logger.warning(msg=msg)
             else:
                 self.formfactorcombobox = FIRST_FORM[self.categorycombobox]
@@ -620,5 +622,5 @@
             except Exception:
                 msg = "Report string expected 'name: value' but got %r" % line
-                logging.error(msg)
+                logger.error(msg)
             if name.count("State created"):
                 repo_time = "" + value
@@ -662,5 +664,5 @@
                 except Exception:
                     msg = "While parsing 'data: ...'\n"
-                    logging.error(msg + traceback.format_exc())
+                    logger.error(msg + traceback.format_exc())
             if name == "model name ":
                 try:
@@ -678,5 +680,5 @@
                 except Exception:
                     msg = "While parsing 'Plotting Range: ...'\n"
-                    logging.error(msg + traceback.format_exc())
+                    logger.error(msg + traceback.format_exc())
         paramval = ""
         for lines in param_string.split(":"):
@@ -1037,5 +1039,5 @@
                     msg = "PageState.fromXML: Could not"
                     msg += " read timestamp\n %s" % sys.exc_value
-                    logging.error(msg)
+                    logger.error(msg)
 
             if entry is not None:
@@ -1077,5 +1079,5 @@
                             except Exception:
                                 base = "unable to load distribution %r for %s"
-                                logging.error(base % (value, parameter))
+                                logger.error(base % (value, parameter))
                                 continue
                         _disp_obj_dict = getattr(self, varname)
@@ -1099,5 +1101,5 @@
                                 msg = ("Error reading %r from %s %s\n"
                                        % (line, tagname, name))
-                                logging.error(msg + traceback.format_exc())
+                                logger.error(msg + traceback.format_exc())
                         dic[name] = numpy.array(value_list)
                     setattr(self, varname, dic)
@@ -1207,5 +1209,5 @@
 
         except:
-            logging.info("XML document does not contain fitting information.\n"
+            logger.info("XML document does not contain fitting information.\n"
                          + traceback.format_exc())
 
Index: src/sas/sasgui/perspectives/invariant/invariant.py
===================================================================
--- src/sas/sasgui/perspectives/invariant/invariant.py	(revision c10d9d6c8667422d3db329ac32d0528a6cce3fc6)
+++ src/sas/sasgui/perspectives/invariant/invariant.py	(revision c155a16ca3fb1da7057f151c62510d780700b9e8)
@@ -27,4 +27,6 @@
 from sas.sasgui.guiframe.plugin_base import PluginBase
 
+logger = logging.getLogger()
+
 class Plugin(PluginBase):
     """
@@ -46,5 +48,5 @@
 
         # Log startup
-        logging.info("Invariant plug-in started")
+        logger.info("Invariant plug-in started")
 
     def get_data(self):
@@ -280,5 +282,5 @@
 
         except:
-            logging.error("invariant.set_state: %s" % sys.exc_value)
+            logger.error("invariant.set_state: %s" % sys.exc_value)
 
     def on_set_state_helper(self, event=None):
Index: src/sas/sasgui/perspectives/invariant/invariant_panel.py
===================================================================
--- src/sas/sasgui/perspectives/invariant/invariant_panel.py	(revision 18b7ecb9592132eb5e291874eb5b6c2046d54a45)
+++ src/sas/sasgui/perspectives/invariant/invariant_panel.py	(revision c155a16ca3fb1da7057f151c62510d780700b9e8)
@@ -24,4 +24,6 @@
 from sas.sasgui.guiframe.panel_base import PanelBase
 from sas.sasgui.guiframe.documentation_window import DocumentationWindow
+
+logger = logging.getLogger()
 
 # The minimum q-value to be used when extrapolating
@@ -460,5 +462,5 @@
                 self._manager.plot_theory(name="Low-Q extrapolation")
             except:
-                logging.error(sys.exc_value)
+                logger.error(sys.exc_value)
 
     def get_high_qstar(self, inv, high_q=False):
@@ -494,5 +496,5 @@
                 self._manager.plot_theory(name="High-Q extrapolation")
             except:
-                logging.error(sys.exc_value)
+                logger.error(sys.exc_value)
 
     def get_qstar(self, inv):
@@ -845,5 +847,5 @@
             attr.SetValue(value)
         except:
-            logging.error("Invariant state: %s", sys.exc_value)
+            logger.error("Invariant state: %s", sys.exc_value)
 
     def get_bookmark_by_num(self, num=None):
@@ -862,5 +864,5 @@
             _, _, current_state, comp_state = self.state.bookmark_list[int(num)]
         except:
-            logging.error(sys.exc_value)
+            logger.error(sys.exc_value)
             raise ValueError, "No such bookmark exists"
 
@@ -957,5 +959,5 @@
                     self.state.clone_state()
         except:
-            logging.error(sys.exc_value)
+            logger.error(sys.exc_value)
 
         self._set_undo_flag(True)
@@ -1001,5 +1003,5 @@
                 del self.state.state_list[str(i)]
             except:
-                logging.error(sys.exc_value)
+                logger.error(sys.exc_value)
         # Enable the undo button if it was not
         self._set_undo_flag(True)
@@ -1066,5 +1068,5 @@
                 del self.state.state_list[str(i)]
             except:
-                logging.error(sys.exc_value)
+                logger.error(sys.exc_value)
 
         # try to add new state of the text changes in the state_list
@@ -1081,5 +1083,5 @@
             self.state.state_list[str(self.state.state_num)] = self.state.clone_state()
         except:
-            logging.error(sys.exc_value)
+            logger.error(sys.exc_value)
 
         self._set_undo_flag(True)
@@ -1103,5 +1105,5 @@
             self.state.state_list[str(self.state.state_num)] = self.state.clone_state()
         except:
-            logging.error(sys.exc_value)
+            logger.error(sys.exc_value)
 
     def _get_input_list(self):
Index: src/sas/sasgui/perspectives/invariant/invariant_state.py
===================================================================
--- src/sas/sasgui/perspectives/invariant/invariant_state.py	(revision db5294eb167ea87b105d85329af888f2b1a980fd)
+++ src/sas/sasgui/perspectives/invariant/invariant_state.py	(revision c155a16ca3fb1da7057f151c62510d780700b9e8)
@@ -16,4 +16,6 @@
 from sas.sasgui.guiframe.gui_style import GUIFRAME_ID
 from sas.sasgui.guiframe.dataFitting import Data1D
+
+logger = logging.getLogger()
 
 INVNODE_NAME = 'invariant'
@@ -381,5 +383,5 @@
                     msg = "InvariantSate.fromXML: Could not read"
                     msg += " timestamp\n %s" % sys.exc_value
-                    logging.error(msg)
+                    logger.error(msg)
 
             # Parse bookmarks
@@ -694,5 +696,5 @@
             msg = "XML document does not contain invariant"
             msg += " information.\n %s" % sys.exc_value
-            logging.info(msg)
+            logger.info(msg)
         return state
 
Index: src/sas/sasgui/perspectives/invariant/report_dialog.py
===================================================================
--- src/sas/sasgui/perspectives/invariant/report_dialog.py	(revision d85c194ea2f78cb2b9b3de9c969e1b8ebea6b6d2)
+++ src/sas/sasgui/perspectives/invariant/report_dialog.py	(revision c155a16ca3fb1da7057f151c62510d780700b9e8)
@@ -20,4 +20,6 @@
 
 from sas.sasgui.guiframe.report_dialog import BaseReportDialog
+
+logger = logging.getLogger()
 
 class ReportDialog(BaseReportDialog):
@@ -92,5 +94,5 @@
                     except:
                         # DO not open
-                        logging.error("Could not open file: %s" % sys.exc_value)
+                        logger.error("Could not open file: %s" % sys.exc_value)
             # delete image file
             os.remove(pic_fname)
Index: src/sas/sasgui/perspectives/pr/explore_dialog.py
===================================================================
--- src/sas/sasgui/perspectives/pr/explore_dialog.py	(revision d85c194ea2f78cb2b9b3de9c969e1b8ebea6b6d2)
+++ src/sas/sasgui/perspectives/pr/explore_dialog.py	(revision c155a16ca3fb1da7057f151c62510d780700b9e8)
@@ -22,4 +22,6 @@
 import logging
 import sys
+
+logger = logging.getLogger()
 
 # Avoid Matplotlib complaining about the lack of legend on the plot
@@ -284,5 +286,5 @@
             msg += "a change in the " % str(output_type)
             msg += "ExploreDialog code."
-            logging.error(msg)
+            logger.error(msg)
 
     def __do_layout(self):
@@ -418,5 +420,5 @@
                 msg = "ExploreDialog: inversion failed "
                 msg += "for D_max=%s\n%s" % (str(d), sys.exc_value)
-                logging.error(msg)
+                logger.error(msg)
 
         self.results = results
Index: src/sas/sasgui/perspectives/pr/inversion_panel.py
===================================================================
--- src/sas/sasgui/perspectives/pr/inversion_panel.py	(revision 18b7ecb9592132eb5e291874eb5b6c2046d54a45)
+++ src/sas/sasgui/perspectives/pr/inversion_panel.py	(revision c155a16ca3fb1da7057f151c62510d780700b9e8)
@@ -17,4 +17,6 @@
 from pr_widgets import OutputTextCtrl
 from sas.sasgui.guiframe.documentation_window import DocumentationWindow
+
+logger = logging.getLogger()
 
 if sys.platform.count("win32") > 0:
@@ -710,8 +712,8 @@
             self.alpha_ctl.SetValue(alpha)
         except ValueError:
-            logging.error("InversionControl._on_accept_alpha got a value that was not a number: %s" % alpha )
+            logger.error("InversionControl._on_accept_alpha got a value that was not a number: %s" % alpha )
         except:
             # No estimate or bad estimate, either do nothing
-            logging.error("InversionControl._on_accept_alpha: %s" % sys.exc_value)
+            logger.error("InversionControl._on_accept_alpha: %s" % sys.exc_value)
 
     def _on_accept_nterms(self, evt):
@@ -726,8 +728,8 @@
             self.nfunc_ctl.SetValue(nterms)
         except ValueError:
-            logging.error("InversionControl._on_accept_nterms got a value that was not a number: %s" % nterms )
+            logger.error("InversionControl._on_accept_nterms got a value that was not a number: %s" % nterms )
         except:
             # No estimate or bad estimate, either do nothing
-            logging.error("InversionControl._on_accept_nterms: %s" % sys.exc_value)
+            logger.error("InversionControl._on_accept_nterms: %s" % sys.exc_value)
 
     def clear_panel(self):
@@ -947,5 +949,5 @@
             except:
                 msg = "InversionControl._change_file: %s" % sys.exc_value
-                logging.error(msg)
+                logger.error(msg)
 
     def on_help(self, event):
Index: src/sas/sasgui/perspectives/pr/inversion_state.py
===================================================================
--- src/sas/sasgui/perspectives/pr/inversion_state.py	(revision d85c194ea2f78cb2b9b3de9c969e1b8ebea6b6d2)
+++ src/sas/sasgui/perspectives/pr/inversion_state.py	(revision c155a16ca3fb1da7057f151c62510d780700b9e8)
@@ -22,4 +22,6 @@
 from sas.sascalc.dataloader.readers.cansas_reader import get_content
 
+logger = logging.getLogger()
+
 PRNODE_NAME = 'pr_inversion'
 CANSAS_NS = "cansas1d/1.0"
@@ -250,5 +252,5 @@
                     msg = "InversionState.fromXML: Could not read "
                     msg += "timestamp\n %s" % sys.exc_value
-                    logging.error(msg)
+                    logger.error(msg)
 
             # Parse inversion inputs
@@ -306,5 +308,5 @@
                         err_msg += "%d %d" % (len(self.coefficients),
                                               self.nfunc)
-                        logging.error(err_msg)
+                        logger.error(err_msg)
                         self.coefficients = None
 
@@ -343,5 +345,5 @@
                         err_msg += " covariance matrix: "
                         err_msg += "%d %d" % (len(self.covariance), self.nfunc)
-                        logging.error(err_msg)
+                        logger.error(err_msg)
                         self.covariance = None
 
@@ -430,5 +432,5 @@
             msg = "XML document does not contain P(r) "
             msg += "information.\n %s" % sys.exc_value
-            logging.info(msg)
+            logger.info(msg)
 
         return state
Index: src/sas/sasgui/perspectives/pr/pr.py
===================================================================
--- src/sas/sasgui/perspectives/pr/pr.py	(revision a69a967b8ace2263edf57d6328d2ece6d26f1492)
+++ src/sas/sasgui/perspectives/pr/pr.py	(revision c155a16ca3fb1da7057f151c62510d780700b9e8)
@@ -34,4 +34,6 @@
 from pr_widgets import load_error
 from sas.sasgui.guiframe.plugin_base import PluginBase
+
+logger = logging.getLogger()
 
 
@@ -113,5 +115,5 @@
 
         # Log startup
-        logging.info("Pr(r) plug-in started")
+        logger.info("Pr(r) plug-in started")
 
     def delete_data(self, data_id):
@@ -181,5 +183,5 @@
             self.control_panel.set_state(state)
         except:
-            logging.error("prview.set_state: %s" % sys.exc_value)
+            logger.error("prview.set_state: %s" % sys.exc_value)
 
 
@@ -508,5 +510,5 @@
                     data_err = numpy.append(data_err, err)
                 except:
-                    logging.error(sys.exc_value)
+                    logger.error(sys.exc_value)
 
         if not scale == None:
@@ -559,5 +561,5 @@
                         data_err = numpy.append(data_err, err)
                     except:
-                        logging.error(sys.exc_value)
+                        logger.error(sys.exc_value)
                 elif line.find("The 6 columns") >= 0:
                     data_started = True
@@ -1201,5 +1203,5 @@
             dataset = panel.plots[panel.graph.selected_plottable].name
         else:
-            logging.info("Prview Error: No data is available")
+            logger.info("Prview Error: No data is available")
             return
 
@@ -1211,5 +1213,5 @@
         except:
             self.control_panel.alpha = self.alpha
-            logging.info("Prview :Alpha Not estimate yet")
+            logger.info("Prview :Alpha Not estimate yet")
         try:
             estimate = int(self.control_panel.nterms_estimate)
@@ -1217,5 +1219,5 @@
         except:
             self.control_panel.nfunc = self.nfunc
-            logging.info("Prview : ntemrs Not estimate yet")
+            logger.info("Prview : ntemrs Not estimate yet")
 
         self.current_plottable = panel.plots[panel.graph.selected_plottable]
Index: src/sas/sasgui/perspectives/simulation/simulation.py
===================================================================
--- src/sas/sasgui/perspectives/simulation/simulation.py	(revision d85c194ea2f78cb2b9b3de9c969e1b8ebea6b6d2)
+++ src/sas/sasgui/perspectives/simulation/simulation.py	(revision c155a16ca3fb1da7057f151c62510d780700b9e8)
@@ -24,4 +24,6 @@
 from sas.sascalc.data_util.calcthread import CalcThread
 from sas.guicomm.events import NewPlotEvent, StatusEvent    
+
+logger = logging.getLogger()
 
 class Calc1D(CalcThread):
@@ -93,5 +95,5 @@
         self._default_save_location = os.getcwd()
         # Log startup
-        logging.info("Simulation plug-in started")
+        logger.info("Simulation plug-in started")
         
     def get_panels(self, parent):
