class_docstr: Logger to be used by all applications and classes.
  
  Notes
  -----
  Singleton class i.e. setting the log level changes the output globally.
  
  Examples
  --------
  Initializing the logger
  
  >>> from medpy.core import Logger
  >>> logger = Logger.getInstance()
  
  Error messages are passed to stdout
  
  >>> logger.error('error message')
  15.09.2014 12:40:25 [ERROR   ] error message
  >>> logger.error('critical message')
  15.09.2014 12:40:42 [CRITICAL] critical message
  
  But debug and info messages are suppressed
  
  >>> logger.info('info message')
  >>> logger.debug('debug message')
  
  Unless the log level is set accordingly
  
  >>> import logging
  >>> logger.setLevel(logging.DEBUG)
  
  >>> logger.info('info message')
  15.09.2014 12:43:06 [INFO    ] info message (in <ipython-input-14-a08cad56519d>.<module>:1)
  >>> logger.debug('debug message')
  15.09.2014 12:42:50 [DEBUG   ] debug message (in <ipython-input-13-3bb0c512b560>.<module>:1)
      
code: def __init__(self, name="MedPyLogger", level=0):
      # To guarantee that no one created more than one instance of Logger:
      if not Logger._instance == None:
          raise RuntimeError("Only one instance of Logger is allowed!")
  
      # initialize parent
      NativeLogger.__init__(self, name, level)
  
      # set attributes
      self.setHandler(logging.StreamHandler(sys.stdout))
      self.setLevel(logging.WARNING)
  
file_path: medpy/medpy/core/logger.py
imports: import sys
  import logging
  from logging import Logger
label_desc: Use image node_id 1 to create a new Logger object from inherited base classes: NativeLogger with example: obj = Logger(name, level)