# License along with calibcant. If not, see
# <http://www.gnu.org/licenses/>.
-__version__ = '0.5'
+import logging as _logging
+import logging.handlers as _logging_handlers
+
+
+__version__ = '0.4'
+
+
+LOG = _logging.getLogger('calibcant')
+"Calibcant logger"
+
+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)