def test_get_logger_context(self): # Ensure that a different logger is returned for different contexts. l1 = get_logger(name='gruvi_test') l2 = get_logger(context='foo', name='gruvi_test') self.assertIsNot(l1, l2) l3 = get_logger(context='bar', name='gruvi_test') self.assertIsNot(l2, l3)
def test_context(self): # Ensure that a logging context is added. self.logger.setLevel(logging.DEBUG) logger = get_logger('fooctx', name='gruvi_test') logger.debug('foo bar') messages = self.get_messages() self.assertEqual(len(messages), 1) self.assertIn('fooctx', messages[0]) self.assertIn('foo bar', messages[0]) logger = get_logger('barctx', name='gruvi_test') logger.debug('foo bar') messages = self.get_messages() self.assertEqual(len(messages), 1) self.assertNotIn('fooctx', messages[0]) self.assertIn('barctx', messages[0]) self.assertIn('foo bar', messages[0])
class log: from gruvi.logging import get_logger logger = get_logger() @classmethod def msg(cls, m): cls.logger.warning(m)
def __init__(self, _loop=None): if self.current().parent is not None: raise RuntimeError('Hub must be created in the root fiber') super(Hub, self).__init__(target=self.run) self._loop = _loop or pyuv.Loop.default_loop() self._atomic = collections.deque() self._callbacks = collections.deque() from gruvi import logging, util self._log = logging.get_logger(util.objref(self))
def test_fiber_context(self): # Ensure that both a logging context and a fiber context are added. self.logger.setLevel(logging.DEBUG) gruvi.current_fiber().context = 'fibctx' logger = get_logger('logctx', name='gruvi_test') logger.debug('foo bar') messages = self.get_messages() self.assertEqual(len(messages), 1) self.assertIn('fibctx', messages[0]) self.assertIn('logctx', messages[0]) self.assertIn('foo bar', messages[0]) logger = get_logger(name='gruvi_test') logger.debug('foo bar') messages = self.get_messages() self.assertEqual(len(messages), 1) self.assertIn('fibctx', messages[0]) self.assertNotIn('logctx', messages[0]) self.assertIn('foo bar', messages[0])
def test_warning(self): # Ensure that WARNING level output works if the level is set accordingly self.logger.setLevel(logging.WARNING) logger = get_logger(name='gruvi_test') logger.warning('foo bar') messages = self.get_messages() self.assertEqual(len(messages), 1) self.assertIn('WARNING', messages[0]) self.assertIn('foo bar', messages[0]) self.logger.setLevel(100) logger.warning('foo baz') messages = self.get_messages() self.assertEqual(len(messages), 0)
def test_info(self): # Ensure that INFO level output works if the level is set accordingly self.logger.setLevel(logging.INFO) logger = get_logger(name='gruvi_test') logger.info('foo bar') messages = self.get_messages() self.assertEqual(len(messages), 1) self.assertIn('INFO', messages[0]) self.assertIn('foo bar', messages[0]) self.logger.setLevel(100) logger.info('foo baz') messages = self.get_messages() self.assertEqual(len(messages), 0)
def test_debug_frame_info(self): # Ensure that frame info is appended when the level is DEBUG self.logger.setLevel(logging.DEBUG) logger = get_logger(name='gruvi_test') logger.info('foo bar') messages = self.get_messages() self.assertEqual(len(messages), 1) self.assertTrue(self.re_frame.search(messages[0])) self.logger.setLevel(logging.INFO) logger.info('foo bar') messages = self.get_messages() self.assertEqual(len(messages), 1) self.assertFalse(self.re_frame.search(messages[0]))
def test_critical(self): # Ensure that CRITCAL level output works if the level is set accordingly self.logger.setLevel(logging.CRITICAL) logger = get_logger(name='gruvi_test') logger.critical('foo bar') messages = self.get_messages() self.assertEqual(len(messages), 1) self.assertIn('CRITICAL', messages[0]) self.assertIn('foo bar', messages[0]) self.logger.setLevel(100) logger.critical('foo baz') messages = self.get_messages() self.assertEqual(len(messages), 0)
def test_error(self): # Ensure that ERROR level output works if the level is set accordingly self.logger.setLevel(logging.ERROR) logger = get_logger(name='gruvi_test') logger.error('foo bar') messages = self.get_messages() self.assertEqual(len(messages), 1) self.assertIn('ERROR', messages[0]) self.assertIn('foo bar', messages[0]) self.logger.setLevel(100) logger.error('foo baz') messages = self.get_messages() self.assertEqual(len(messages), 0)
def test_exception(self): # Ensure that a logged exception includes a backtrace self.logger.setLevel(logging.ERROR) logger = get_logger(name='gruvi_test') try: raise ValueError('foo bar') except ValueError: logger.exception('baz qux') messages = self.get_messages() self.assertGreater(len(messages), 2) self.assertIn('ERROR', messages[0]) self.assertIn('baz qux', messages[0]) self.assertIn('Traceback', messages[1]) self.assertIn('foo bar', messages[-1])
def mem_logger(self): self.add_result(sizeof(get_logger(), exclude=('logger', )))
def test_get_logger(self): # Ensure that get_logger() returns the correct logger. logger = get_logger(name='gruvi_test') self.assertIs(logger._logger, self.logger) logger = get_logger() self.assertIsNot(logger._logger, self.logger)
def mem_logger(self): self.add_result(sizeof(get_logger(), exclude=('logger',)))