當前位置: 首頁>>代碼示例>>Python>>正文


Python log.LogPublisher方法代碼示例

本文整理匯總了Python中twisted.python.log.LogPublisher方法的典型用法代碼示例。如果您正苦於以下問題:Python log.LogPublisher方法的具體用法?Python log.LogPublisher怎麽用?Python log.LogPublisher使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在twisted.python.log的用法示例。


在下文中一共展示了log.LogPublisher方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: test_publisherReportsBrokenObserversPrivately

# 需要導入模塊: from twisted.python import log [as 別名]
# 或者: from twisted.python.log import LogPublisher [as 別名]
def test_publisherReportsBrokenObserversPrivately(self):
        """
        Log publisher does not use the global L{log.err} when reporting broken
        observers.
        """
        errors = []

        def logError(eventDict):
            if eventDict.get("isError"):
                errors.append(eventDict["failure"].value)

        def fail(eventDict):
            raise RuntimeError("test_publisherLocalyReportsBrokenObservers")

        publisher = log.LogPublisher()
        publisher.addObserver(logError)
        publisher.addObserver(fail)

        publisher.msg("Hello!")
        self.assertEqual(set(publisher.observers), set([logError, fail]))
        self.assertEqual(len(errors), 1)
        self.assertIsInstance(errors[0], RuntimeError) 
開發者ID:proxysh,項目名稱:Safejumper-for-Desktop,代碼行數:24,代碼來源:test_log.py

示例2: test_startLoggingTwice

# 需要導入模塊: from twisted.python import log [as 別名]
# 或者: from twisted.python.log import LogPublisher [as 別名]
def test_startLoggingTwice(self):
        """
        There are some obscure error conditions that can occur when logging is
        started twice. See http://twistedmatrix.com/trac/ticket/3289 for more
        information.
        """
        self._startLoggingCleanup()
        # The bug is particular to the way that the t.p.log 'global' function
        # handle stdout. If we use our own stream, the error doesn't occur. If
        # we use our own LogPublisher, the error doesn't occur.
        sys.stdout = StringIO()

        def showError(eventDict):
            if eventDict['isError']:
                sys.__stdout__.write(eventDict['failure'].getTraceback())

        log.addObserver(showError)
        self.addCleanup(log.removeObserver, showError)
        observer = log.startLogging(sys.stdout)
        self.addCleanup(observer.stop)
        # At this point, we expect that sys.stdout is a StdioOnnaStick object.
        self.assertIsInstance(sys.stdout, LoggingFile)
        fakeStdout = sys.stdout
        observer = log.startLogging(sys.stdout)
        self.assertIs(sys.stdout, fakeStdout) 
開發者ID:proxysh,項目名稱:Safejumper-for-Desktop,代碼行數:27,代碼來源:test_log.py

示例3: test_emitNewline

# 需要導入模塊: from twisted.python import log [as 別名]
# 或者: from twisted.python.log import LogPublisher [as 別名]
def test_emitNewline(self):
        """
        FileLogObserver.emit() will append a newline to its file output.
        """
        output = StringIO()
        flo = log.FileLogObserver(output)

        publisher = log.LogPublisher()
        publisher.addObserver(flo.emit)

        publisher.msg("Hello!")

        result = output.getvalue()
        suffix = "Hello!\n"

        self.assertTrue(
            result.endswith(suffix),
            "{0!r} does not end with {1!r}".format(result, suffix)
        ) 
開發者ID:proxysh,項目名稱:Safejumper-for-Desktop,代碼行數:21,代碼來源:test_log.py

示例4: test_error

# 需要導入模塊: from twisted.python import log [as 別名]
# 或者: from twisted.python.log import LogPublisher [as 別名]
def test_error(self, logger):
        """
        An error logged to the given ``LogPublisher`` is converted to an Eliot
        log message.
        """
        publisher = LogPublisher()
        observer = EliotObserver(publisher)
        observer.logger = logger
        publisher.addObserver(observer)
        # No public API for this unfortunately, so emulate error logging:
        publisher.msg(failure=Failure(ZeroDivisionError("onoes")),
                      why=b"A zero division ono",
                      isError=True)
        message = (u'A zero division ono\nTraceback (most recent call '
                   u'last):\nFailure: exceptions.ZeroDivisionError: onoes\n')
        assertHasMessage(self, logger, TWISTED_LOG_MESSAGE,
                         dict(error=True, message=message)) 
開發者ID:ClusterHQ,項目名稱:flocker,代碼行數:19,代碼來源:test_script.py

示例5: test_singleUnicode

# 需要導入模塊: from twisted.python import log [as 別名]
# 或者: from twisted.python.log import LogPublisher [as 別名]
def test_singleUnicode(self):
        """
        L{log.LogPublisher.msg} does not accept non-ASCII Unicode on Python 2,
        logging an error instead.

        On Python 3, where Unicode is default message type, the message is
        logged normally.
        """
        message = u"Hello, \N{VULGAR FRACTION ONE HALF} world."
        self.lp.msg(message)
        self.assertEqual(len(self.out), 1)
        if _PY3:
            self.assertIn(message, self.out[0])
        else:
            self.assertIn('with str error', self.out[0])
            self.assertIn('UnicodeEncodeError', self.out[0]) 
開發者ID:wistbean,項目名稱:learn_python3_spider,代碼行數:18,代碼來源:test_log.py

示例6: setUp

# 需要導入模塊: from twisted.python import log [as 別名]
# 或者: from twisted.python.log import LogPublisher [as 別名]
def setUp(self):
        """
        Add a log observer which records log events in C{self.out}.  Also,
        make sure the default string encoding is ASCII so that
        L{testSingleUnicode} can test the behavior of logging unencodable
        unicode messages.
        """
        self.out = FakeFile()
        self.lp = log.LogPublisher()
        self.flo = log.FileLogObserver(self.out)
        self.lp.addObserver(self.flo.emit)

        try:
            str(u'\N{VULGAR FRACTION ONE HALF}')
        except UnicodeEncodeError:
            # This is the behavior we want - don't change anything.
            self._origEncoding = None
        else:
            reload(sys)
            self._origEncoding = sys.getdefaultencoding()
            sys.setdefaultencoding('ascii') 
開發者ID:kuri65536,項目名稱:python-for-android,代碼行數:23,代碼來源:test_log.py

示例7: getRunner

# 需要導入模塊: from twisted.python import log [as 別名]
# 或者: from twisted.python.log import LogPublisher [as 別名]
def getRunner(self):
        r = trial._makeRunner(self.config)
        r.stream = NativeStringIO()
        # XXX The runner should always take care of cleaning this up itself.
        # It's not clear why this is necessary.  The runner always tears down
        # its log file.
        self.addCleanup(r._tearDownLogFile)
        # XXX The runner should always take care of cleaning this up itself as
        # well.  It's necessary because TrialRunner._setUpTestdir might raise
        # an exception preventing Reporter.done from being run, leaving the
        # observer added by Reporter.__init__ still present in the system.
        # Something better needs to happen inside
        # TrialRunner._runWithoutDecoration to remove the need for this cludge.
        r._log = log.LogPublisher()
        return r 
開發者ID:proxysh,項目名稱:Safejumper-for-Desktop,代碼行數:17,代碼來源:test_runner.py

示例8: setUp

# 需要導入模塊: from twisted.python import log [as 別名]
# 或者: from twisted.python.log import LogPublisher [as 別名]
def setUp(self):
        self.test = sample.FooTest('test_foo')
        self.stream = NativeStringIO()
        self.publisher = log.LogPublisher()
        self.result = self.resultFactory(self.stream, publisher=self.publisher) 
開發者ID:proxysh,項目名稱:Safejumper-for-Desktop,代碼行數:7,代碼來源:test_reporter.py

示例9: test_showwarning

# 需要導入模塊: from twisted.python import log [as 別名]
# 或者: from twisted.python.log import LogPublisher [as 別名]
def test_showwarning(self):
        """
        L{twisted.python.log.showwarning} emits the warning as a message
        to the Twisted logging system.
        """
        publisher = log.LogPublisher()
        publisher.addObserver(self.observer)

        publisher.showwarning(
            FakeWarning("unique warning message"), FakeWarning,
            "warning-filename.py", 27)
        event = self.catcher.pop()
        self.assertEqual(
            event['format'] % event,
            'warning-filename.py:27: twisted.test.test_log.FakeWarning: '
            'unique warning message')
        self.assertEqual(self.catcher, [])

        # Python 2.6 requires that any function used to override the
        # warnings.showwarning API accept a "line" parameter or a
        # deprecation warning is emitted.
        publisher.showwarning(
            FakeWarning("unique warning message"), FakeWarning,
            "warning-filename.py", 27, line=object())
        event = self.catcher.pop()
        self.assertEqual(
            event['format'] % event,
            'warning-filename.py:27: twisted.test.test_log.FakeWarning: '
            'unique warning message')
        self.assertEqual(self.catcher, []) 
開發者ID:proxysh,項目名稱:Safejumper-for-Desktop,代碼行數:32,代碼來源:test_log.py

示例10: test_singleUnicode

# 需要導入模塊: from twisted.python import log [as 別名]
# 或者: from twisted.python.log import LogPublisher [as 別名]
def test_singleUnicode(self):
        """
        L{log.LogPublisher.msg} encodes Unicode as ``ascii`` with
        ``backslashreplace`` error handling on Python 2.

        On Python 3, where Unicode is default message type, the
        message is logged normally.
        """
        message = u"Hello, \N{VULGAR FRACTION ONE HALF} world."
        self.lp.msg(message)
        self.assertEqual(len(self.out), 1)
        if _PY3:
            self.assertIn(message, self.out[0])
        else:
            self.assertIn(r"Hello, \xbd world", self.out[0]) 
開發者ID:proxysh,項目名稱:Safejumper-for-Desktop,代碼行數:17,代碼來源:test_log.py

示例11: test_emitPrefix

# 需要導入模塊: from twisted.python import log [as 別名]
# 或者: from twisted.python.log import LogPublisher [as 別名]
def test_emitPrefix(self):
        """
        FileLogObserver.emit() will add a timestamp and system prefix to its
        file output.
        """
        output = StringIO()
        flo = log.FileLogObserver(output)
        events = []

        def observer(event):
            # Capture the event for reference and pass it along to flo
            events.append(event)
            flo.emit(event)

        publisher = log.LogPublisher()
        publisher.addObserver(observer)

        publisher.msg("Hello!")
        self.assertEqual(len(events), 1)
        event = events[0]

        result = output.getvalue()
        prefix = "{time} [{system}] ".format(
            time=flo.formatTime(event["time"]), system=event["system"],
        )

        self.assertTrue(
            result.startswith(prefix),
            "{0!r} does not start with {1!r}".format(result, prefix)
        ) 
開發者ID:proxysh,項目名稱:Safejumper-for-Desktop,代碼行數:32,代碼來源:test_log.py

示例12: test_message

# 需要導入模塊: from twisted.python import log [as 別名]
# 或者: from twisted.python.log import LogPublisher [as 別名]
def test_message(self, logger):
        """
        A message logged to the given ``LogPublisher`` is converted to an
        Eliot log message.
        """
        publisher = LogPublisher()
        observer = EliotObserver(publisher)
        observer.logger = logger
        publisher.addObserver(observer)
        publisher.msg(b"Hello", b"world")
        assertHasMessage(self, logger, TWISTED_LOG_MESSAGE,
                         dict(error=False, message=u"Hello world")) 
開發者ID:ClusterHQ,項目名稱:flocker,代碼行數:14,代碼來源:test_script.py

示例13: getRunner

# 需要導入模塊: from twisted.python import log [as 別名]
# 或者: from twisted.python.log import LogPublisher [as 別名]
def getRunner(self):
        r = trial._makeRunner(self.config)
        r.stream = StringIO.StringIO()
        # XXX The runner should always take care of cleaning this up itself.
        # It's not clear why this is necessary.  The runner always tears down
        # its log file.
        self.addCleanup(r._tearDownLogFile)
        # XXX The runner should always take care of cleaning this up itself as
        # well.  It's necessary because TrialRunner._setUpTestdir might raise
        # an exception preventing Reporter.done from being run, leaving the
        # observer added by Reporter.__init__ still present in the system.
        # Something better needs to happen inside
        # TrialRunner._runWithoutDecoration to remove the need for this cludge.
        r._log = log.LogPublisher()
        return r 
開發者ID:kuri65536,項目名稱:python-for-android,代碼行數:17,代碼來源:test_runner.py

示例14: setUp

# 需要導入模塊: from twisted.python import log [as 別名]
# 或者: from twisted.python.log import LogPublisher [as 別名]
def setUp(self):
        self.test = sample.FooTest('test_foo')
        self.stream = StringIO.StringIO()
        self.publisher = log.LogPublisher()
        self.result = self.resultFactory(self.stream, publisher=self.publisher) 
開發者ID:kuri65536,項目名稱:python-for-android,代碼行數:7,代碼來源:test_reporter.py

示例15: test_erroneousErrors

# 需要導入模塊: from twisted.python import log [as 別名]
# 或者: from twisted.python.log import LogPublisher [as 別名]
def test_erroneousErrors(self):
        """
        Exceptions raised by log observers are logged but the observer which
        raised the exception remains registered with the publisher.  These
        exceptions do not prevent the event from being sent to other observers
        registered with the publisher.
        """
        L1 = []
        L2 = []
        def broken(events):
            1 / 0

        for observer in [L1.append, broken, L2.append]:
            log.addObserver(observer)
            self.addCleanup(log.removeObserver, observer)

        for i in xrange(3):
            # Reset the lists for simpler comparison.
            L1[:] = []
            L2[:] = []

            # Send out the event which will break one of the observers.
            log.msg("Howdy, y'all.")

            # The broken observer should have caused this to be logged.  There
            # is a slight bug with LogPublisher - when it logs an error from an
            # observer, it uses the global "err", which is not necessarily
            # associated with it, but which may be associated with a different
            # LogPublisher!  See #3307.
            excs = self.flushLoggedErrors(ZeroDivisionError)
            self.assertEqual(len(excs), 1)

            # Both other observers should have seen the message.
            self.assertEquals(len(L1), 2)
            self.assertEquals(len(L2), 2)

            # The order is slightly wrong here.  The first event should be
            # delivered to all observers; then, errors should be delivered.
            self.assertEquals(L1[1]['message'], ("Howdy, y'all.",))
            self.assertEquals(L2[0]['message'], ("Howdy, y'all.",)) 
開發者ID:kuri65536,項目名稱:python-for-android,代碼行數:42,代碼來源:test_log.py


注:本文中的twisted.python.log.LogPublisher方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。