From 7c055a3dd14d13fcc660eebd539a855d8965fef3 Mon Sep 17 00:00:00 2001 From: Stefan van der Walt Date: Tue, 27 Mar 2012 16:13:27 -0700 Subject: [PATCH] ENH: Do not use global root logger state in skimage. --- skimage/__init__.py | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/skimage/__init__.py b/skimage/__init__.py index a58f1c54..615fc5ac 100644 --- a/skimage/__init__.py +++ b/skimage/__init__.py @@ -90,7 +90,7 @@ if test_verbose is None: except NameError: pass -def get_log(name): +def get_log(name=None): """Return a console logger. Output may be sent to the logger using the `debug`, `info`, `warning`, @@ -108,7 +108,32 @@ def get_log(name): """ import logging, sys - logging.basicConfig(stream=sys.stdout, level=logging.WARNING) - return logging.getLogger(name) + + if name is None: + name = 'skimage' + else: + name = 'skimage.' + name + + log = logging.getLogger(name) + return log + +def _setup_log(): + """Configure root logger. + + """ + import logging, sys + + log = logging.getLogger() + + handler = logging.StreamHandler(stream=sys.stdout) + formatter = logging.Formatter( + '%(name)s: %(levelname)s: %(message)s' + ) + handler.setFormatter(formatter) + + log.addHandler(handler) + log.setLevel(logging.WARNING) + +_setup_log() from .util.dtype import *