"""
return self.logger.hasHandlers()
+ def _log(self, level, msg, args, exc_info=None, extra=None, stack_info=False):
+ """
+ Low-level log implementation, proxied to allow nested logger adapters.
+ """
+ return self.logger._log(
+ level,
+ msg,
+ args,
+ exc_info=exc_info,
+ extra=extra,
+ stack_info=stack_info,
+ )
+
+ @property
+ def manager(self):
+ return self.logger.manager
+
+ @manager.setter
+ def set_manager(self, value):
+ self.logger.manager = value
+
def __repr__(self):
logger = self.logger
level = getLevelName(logger.getEffectiveLevel())
self.assertFalse(self.logger.hasHandlers())
self.assertFalse(self.adapter.hasHandlers())
+ def test_nested(self):
+ msg = 'Adapters can be nested, yo.'
+ adapter_adapter = logging.LoggerAdapter(logger=self.adapter, extra=None)
+ adapter_adapter.log(logging.CRITICAL, msg, self.recording)
+
+ self.assertEqual(len(self.recording.records), 1)
+ record = self.recording.records[0]
+ self.assertEqual(record.levelno, logging.CRITICAL)
+ self.assertEqual(record.msg, msg)
+ self.assertEqual(record.args, (self.recording,))
+
class LoggerTest(BaseTest):