parameters: ()
return_statement: return _logger
docstring: Returns logger used by multiprocessing
docstring_summary: Returns logger used by multiprocessing
docstring_tokens: Returns logger used by multiprocessing
function: def get_logger():
      '''
      Returns logger used by multiprocessing
      '''
      global _logger
      import logging
  
      logging._acquireLock()
      try:
          if not _logger:
  
              _logger = logging.getLogger(LOGGER_NAME)
              _logger.propagate = 0
  
              # XXX multiprocessing should cleanup before logging
              if hasattr(atexit, 'unregister'):
                  atexit.unregister(_exit_function)
                  atexit.register(_exit_function)
              else:
                  atexit._exithandlers.remove((_exit_function, (), {}))
                  atexit._exithandlers.append((_exit_function, (), {}))
  
      finally:
          logging._releaseLock()
  
      return _logger
function_tokens: def get_logger ( ) : global _logger import logging logging . _acquireLock ( ) try : if not _logger : _logger = logging . getLogger ( LOGGER_NAME ) _logger . propagate = 0 # XXX multiprocessing should cleanup before logging if hasattr ( atexit , 'unregister' ) : atexit . unregister ( _exit_function ) atexit . register ( _exit_function ) else : atexit . _exithandlers . remove ( ( _exit_function , ( ) , { } ) ) atexit . _exithandlers . append ( ( _exit_function , ( ) , { } ) ) finally : logging . _releaseLock ( ) return _logger