Add a method for extracting input channels by name.
[pypiezo.git] / pypiezo / __init__.py
index 38b75afda561e55ca1626bb150ba039c6af4b0d1..f65ab37aa9add6d59276faef7887a86a92295da6 100644 (file)
@@ -16,6 +16,7 @@
 # along with pypiezo.  If not, see <http://www.gnu.org/licenses/>.
 
 import logging as _logging
+import logging.handlers as _logging_handlers
 
 
 __version__ = '0.4'
@@ -24,11 +25,40 @@ __version__ = '0.4'
 LOG = _logging.getLogger('pypiezo')
 "Pypiezo logger"
 
-LOG.setLevel(_logging.DEBUG)
-h = _logging.StreamHandler()
-#h.setLevel(_logging.WARN)
-h.setLevel(_logging.DEBUG)
-f = _logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
-h.setFormatter(f)
-LOG.addHandler(h)
-del h, f
+LOG.setLevel(_logging.WARN)
+_formatter = _logging.Formatter(
+    '%(asctime)s - %(name)s - %(levelname)s - %(message)s')
+
+_stream_handler = _logging.StreamHandler()
+_stream_handler.setLevel(_logging.DEBUG)
+_stream_handler.setFormatter(_formatter)
+LOG.addHandler(_stream_handler)
+
+_syslog_handler = None
+
+
+from .config import _BaseConfig
+from .config import find_base_config as _find_base_config
+
+
+def setup_base_config(config):
+    global base_config, _syslog_handler
+    base_config = config
+
+    LOG.setLevel(base_config['log-level']) 
+
+    if base_config['syslog']:
+        if not _syslog_handler:
+            _syslog_handler = _logging_handlers.SysLogHandler()
+            _syslog_handler.setLevel(_logging.DEBUG)
+        LOG.handlers = [_syslog_handler]
+    else:
+        LOG.handlers = [_stream_handler]
+
+    LOG.info('setup base_config:\n%s' % config.dump())
+
+def clear_base_config():
+    setup_base_config(_BaseConfig())
+
+base_config = _find_base_config()
+setup_base_config(base_config)