Exemplo n.º 1
0
    def test_emitEventWithBrokenRepr(self):
        """
        DefaultObserver.emit() does not raise when it observes an error event
        with a message that causes L{repr} to raise.
        """
        class Ouch(object):
            def __repr__(self):
                return str(1 / 0)

        message = ("foo", Ouch())
        event = dict(message=message, isError=1)

        observer = log.DefaultObserver()
        with StringIO() as output:
            observer.stderr = output
            observer.emit(event)
            self.assertTrue(output.getvalue().startswith("foo <Ouch instance"))
Exemplo n.º 2
0
    def test_failureLogger(self):
        """
        The reason argument passed to log.err() appears in the report
        generated by DefaultObserver.
        """
        from StringIO import StringIO

        obs = log.DefaultObserver()
        obs.stderr = StringIO()
        obs.start()

        reason = "The reason."
        log.err(Exception(), reason)
        errors = self.flushLoggedErrors()

        self.assertSubstring(reason, obs.stderr.getvalue())
        self.assertEqual(len(errors), 1)

        obs.stop()
Exemplo n.º 3
0
    def test_failureLogger(self):
        """
        The reason argument passed to log.err() appears in the report
        generated by DefaultObserver.
        """
        self.catcher = []
        self.observer = self.catcher.append
        log.addObserver(self.observer)
        self.addCleanup(log.removeObserver, self.observer)

        obs = log.DefaultObserver()
        obs.stderr = StringIO()
        obs.start()
        self.addCleanup(obs.stop)

        reason = "The reason."
        log.err(Exception(), reason)
        errors = self.flushLoggedErrors()

        self.assertIn(reason, obs.stderr.getvalue())
        self.assertEqual(len(errors), 1)
Exemplo n.º 4
0
def set_up_logging(where):
    class ignr(logging.Filter):
        def filter(self, r):
            return r.levelname != "INFO"

    format = "%(asctime)s %(levelname)s: %(message)s" if where else "%(message)s"
    filename = os.path.expanduser(where) if where else None

    logging.basicConfig(level=logging.DEBUG,
                        format=format,
                        datefmt="%b %d %H:%M:%S",
                        filename=filename,
                        stream=sys.stdout)

    twistlog = logging.getLogger('twisted')
    twistlog.addFilter(ignr())
    try:
        observer = log.PythonLoggingObserver()
    except AttributeError:
        observer = log.DefaultObserver()
    observer.start()