Пример #1
0
 def test_get_logger(self):
     ema_logging._logger = None
     logger = ema_logging.get_logger()
     self.assertEqual(logger, logging.getLogger(ema_logging.LOGGER_NAME))
     self.assertEqual(len(logger.handlers), 1)
     self.assertEqual(type(logger.handlers[0]), ema_logging.NullHandler)
     
     logger = ema_logging.get_logger()
     self.assertEqual(logger, logging.getLogger(ema_logging.LOGGER_NAME))
     self.assertEqual(len(logger.handlers), 1)
     self.assertEqual(type(logger.handlers[0]), ema_logging.NullHandler)        
Пример #2
0
    def test_engine_logger(self, mocked_application, mocked_adapter):
        logger = ema_logging.get_logger()
        mocked_logger = mock.Mock(spec=logger)
        mocked_logger.handlers = []
        mocked_logger.manager = mock.Mock(spec=logging.Manager)
        mocked_logger.manager.disable = 0
        ema_logging._logger = mocked_logger
        
        mocked_application.instance.return_value = mocked_application
        mocked_application.log = mocked_logger
        
        # no handlers    
        ema.set_engine_logger()
        logger = ema_logging._logger
#         self.assertTrue(type(logger) == type(mocked_adapter))
        mocked_logger.setLevel.assert_called_once_with(ema_logging.DEBUG)
        mocked_adapter.assert_called_with(mocked_logger, ema.SUBTOPIC)
        
        # with handlers
        mocked_logger = mock.create_autospec(logging.Logger)
        mock_engine_handler = mock.create_autospec(IPython.kernel.zmq.log.EnginePUBHandler)# @UndefinedVariable
        mocked_logger.handlers = [mock_engine_handler] 
        
        mocked_application.instance.return_value = mocked_application
        mocked_application.log = mocked_logger
        
        ema.set_engine_logger()
        logger = ema_logging._logger
#         self.assertTrue(type(logger) == ema.EngingeLoggerAdapter)
        mocked_logger.setLevel.assert_called_once_with(ema_logging.DEBUG)
        mocked_adapter.assert_called_with(mocked_logger, ema.SUBTOPIC)
        mock_engine_handler.setLevel.assert_called_once_with(ema_logging.DEBUG)
Пример #3
0
    def setUpClass(cls):
        logger = ema_logging.get_logger()
        mocked_logger = mock.Mock(spec=logger)
        mocked_logger.handlers = []
        ema_logging._logger = mocked_logger

        cls.client = parallel.Client(profile='default')
        cls.url = 'tcp://{}:20202'.format(localhost())
        cls.watcher = ema.start_logwatcher(cls.url)
    def __init__(self, url):
        super(LogWatcher, self).__init__()
        self.context = zmq.Context()
        self.loop = zmq.eventloop.ioloop.IOLoop() # @UndefinedVariable
        self.url = url
        
        s = self.context.socket(zmq.SUB) # @UndefinedVariable
        s.bind(self.url)
        
        # setup up the aggregate EMA logger
        self.logger = ema_logging.get_logger()

        # add check to avoid double stream handlers
        if not any([isinstance(h, logging.StreamHandler) for h in 
                    self.logger.handlers]):
            handler = logging.StreamHandler()
            formatter = logging.Formatter(self.LOG_FORMAT)
            handler.setFormatter(formatter)
            self.logger.addHandler(handler)
        
        self.stream = zmq.eventloop.zmqstream.ZMQStream(s, self.loop) # @UndefinedVariable
        self.subscribe()