Beispiel #1
0
    def test_getLogObserverStdout(self):
        """
        When logfile is empty or set to C{-}, L{app.AppLogger._getLogObserver}
        returns a log observer pointing at C{sys.stdout}.
        """
        logger = app.AppLogger({"logfile": "-"})
        logFiles = _patchFileLogObserver(self.patch)

        observer = logger._getLogObserver()

        self.assertEqual(len(logFiles), 1)
        self.assertIdentical(logFiles[0], sys.stdout)

        logger = app.AppLogger({"logfile": ""})
        observer = logger._getLogObserver()

        self.assertEqual(len(logFiles), 2)
        self.assertIdentical(logFiles[1], sys.stdout)
Beispiel #2
0
 def test_start(self):
     """
     L{app.AppLogger.start} calls L{log.addObserver}, and then writes some
     messages about twistd and the reactor.
     """
     logger = app.AppLogger({})
     observer = []
     logger._getLogObserver = lambda: observer.append
     logger.start(Componentized())
     self._checkObserver(observer)
Beispiel #3
0
 def test_startUsesApplicationLogObserver(self):
     """
     When the L{ILogObserver} component is available on the application,
     that object will be used as the log observer instead of constructing a
     new one.
     """
     application = Componentized()
     logs = []
     application.setComponent(ILogObserver, logs.append)
     logger = app.AppLogger({})
     logger.start(application)
     self._checkObserver(logs)
Beispiel #4
0
    def test_getLogObserverFile(self):
        """
        When passing the C{logfile} option, L{app.AppLogger._getLogObserver}
        returns a log observer pointing at the specified path.
        """
        logFiles = _patchFileLogObserver(self.patch)
        filename = self.mktemp()
        logger = app.AppLogger({"logfile": filename})

        observer = logger._getLogObserver()

        self.assertEquals(len(logFiles), 1)
        self.assertEquals(logFiles[0].path, os.path.abspath(filename))
Beispiel #5
0
 def test_stop(self):
     """
     L{app.AppLogger.stop} removes the observer created in C{start}, and
     reinitialize its C{_observer} so that if C{stop} is called several
     times it doesn't break.
     """
     removed = []
     observer = object()
     def remove(observer):
         removed.append(observer)
     self.patch(log, 'removeObserver', remove)
     logger = app.AppLogger({})
     logger._observer = observer
     logger.stop()
     self.assertEqual(removed, [observer])
     logger.stop()
     self.assertEqual(removed, [observer])
     self.assertIdentical(logger._observer, None)
Beispiel #6
0
app_name = config.get('application', 'name')
application = service.Application(app_name)
log_file = config.get('log', 'file')
log_path = config.get('log', 'directory')
log_level = config.get('log', 'level')

logfile = CustomDailyLogFile(log_file, log_path)

application.setComponent(
    ILogObserver,
    log.FileLogObserver(logfile, log_level, exclude_systems=[]).emit)

if __name__ == '__main__':
    app_config = {
        'no_save': True,
        'nodaemon': False,
        'profile': False,
        'debug': False
    }

    oldstdout = sys.stdout
    oldstderr = sys.stderr

    profiler = app.AppProfiler(app_config)
    logger = app.AppLogger(app_config)

    logger.start(application)
    sys.stdout = oldstdout
    run_test()
    logger.stop()