Пример #1
0
 def test_logging_proxy_recurse_protection(self):
     logger = self.setup_logger(loglevel=logging.ERROR, logfile=None, root=False)
     p = LoggingProxy(logger, loglevel=logging.ERROR)
     p._thread.recurse_protection = True
     try:
         self.assertIsNone(p.write("FOOFO"))
     finally:
         p._thread.recurse_protection = False
Пример #2
0
 def test_logging_proxy_recurse_protection(self):
     logger = self.setup_logger(loglevel=logging.ERROR, logfile=None,
                                root=False)
     p = LoggingProxy(logger, loglevel=logging.ERROR)
     p._thread.recurse_protection = True
     try:
         self.assertIsNone(p.write('FOOFO'))
     finally:
         p._thread.recurse_protection = False
Пример #3
0
    def redirect_stdouts_to_logger(self, logger, loglevel=None,
                                   stdout=True, stderr=True):
        """Redirect :class:`sys.stdout` and :class:`sys.stderr` to logger.

        Arguments:
            logger (logging.Logger): Logger instance to redirect to.
            loglevel (int, str): The loglevel redirected message
                will be logged as.
        """
        proxy = LoggingProxy(logger, loglevel)
        if stdout:
            sys.stdout = proxy
        if stderr:
            sys.stderr = proxy
        return proxy
Пример #4
0
    def redirect_stdouts_to_logger(self, logger, loglevel=None,
            stdout=True, stderr=True):
        """Redirect :class:`sys.stdout` and :class:`sys.stderr` to a
        logging instance.

        :param logger: The :class:`logging.Logger` instance to redirect to.
        :param loglevel: The loglevel redirected messages will be logged as.

        """
        proxy = LoggingProxy(logger, loglevel)
        if stdout:
            sys.stdout = proxy
        if stderr:
            sys.stderr = proxy
        return proxy
Пример #5
0
    def test_logging_proxy(self):
        logger = self.setup_logger(loglevel=logging.ERROR, logfile=None, root=False)

        with wrap_logger(logger) as sio:
            p = LoggingProxy(logger, loglevel=logging.ERROR)
            p.close()
            p.write("foo")
            self.assertNotIn("foo", sio.getvalue())
            p.closed = False
            p.write("foo")
            self.assertIn("foo", sio.getvalue())
            lines = ["baz", "xuzzy"]
            p.writelines(lines)
            for line in lines:
                self.assertIn(line, sio.getvalue())
            p.flush()
            p.close()
            self.assertFalse(p.isatty())
            self.assertIsNone(p.fileno())
Пример #6
0
    def test_logging_proxy(self):
        logger = self.setup_logger(loglevel=logging.ERROR, logfile=None,
                                   root=False)

        with mock.wrap_logger(logger) as sio:
            p = LoggingProxy(logger, loglevel=logging.ERROR)
            p.close()
            p.write('foo')
            self.assertNotIn('foo', sio.getvalue())
            p.closed = False
            p.write('foo')
            self.assertIn('foo', sio.getvalue())
            lines = ['baz', 'xuzzy']
            p.writelines(lines)
            for line in lines:
                self.assertIn(line, sio.getvalue())
            p.flush()
            p.close()
            self.assertFalse(p.isatty())

            with mock.stdouts() as (stdout, stderr):
                with in_sighandler():
                    p.write('foo')
                    self.assertTrue(stderr.getvalue())
Пример #7
0
    def test_logging_proxy_bytes(self, restore_logging):
        logger = self.setup_logger(loglevel=logging.ERROR, logfile=None,
                                   root=False)

        with conftest.wrap_logger(logger) as sio:
            p = LoggingProxy(logger, loglevel=logging.ERROR)
            p.close()
            p.write(b'foo')
            assert 'foo' not in str(sio.getvalue())
            p.closed = False
            p.write(b'\n')
            assert str(sio.getvalue()) == ''
            write_res = p.write(b'foo ')
            assert str(sio.getvalue()) == 'foo \n'
            assert write_res == 4
            p.flush()
            p.close()
            assert not p.isatty()

            with conftest.stdouts() as (stdout, stderr):
                with in_sighandler():
                    p.write(b'foo')
                    assert stderr.getvalue()
Пример #8
0
    def test_logging_proxy(self, restore_logging):
        logger = self.setup_logger(loglevel=logging.ERROR, logfile=None,
                                   root=False)

        with conftest.wrap_logger(logger) as sio:
            p = LoggingProxy(logger, loglevel=logging.ERROR)
            p.close()
            p.write('foo')
            assert 'foo' not in sio.getvalue()
            p.closed = False
            p.write('\n')
            assert sio.getvalue() == ''
            write_res = p.write('foo ')
            assert sio.getvalue() == 'foo \n'
            assert write_res == 4
            lines = ['baz', 'xuzzy']
            p.writelines(lines)
            for line in lines:
                assert line in sio.getvalue()
            p.flush()
            p.close()
            assert not p.isatty()

            with conftest.stdouts() as (stdout, stderr):
                with in_sighandler():
                    p.write('foo')
                    assert stderr.getvalue()
Пример #9
0
            'level': settings.LOG_LEVEL,
        },
        'raven': {
            'level': logging.ERROR,
            'handlers': ['syslog', 'mail_admins'],
            'propagate': False,
        },
        'sentry.errors': {
            'level': logging.ERROR,
            'handlers': ['syslog', 'mail_admins'],
            'propagate': False,
        },
    },
}

if settings.DEBUG:
    config['formatters']['default']['datefmt'] = '%H:%M:%S'
    config['loggers']['k']['handlers'] = ['console']
    config['loggers']['django.request']['handlers'] = ['console']
    config['root']['handlers'] = ['console']
else:
    from celery import current_app
    from celery.utils.log import LoggingProxy

    task_log = logging.getLogger('k.celery')
    task_proxy = LoggingProxy(task_log)
    current_app.conf.update(CELERYD_LOG_FILE=task_proxy,
                            CELERYD_LOG_COLOR=False)

dictConfig(config)
Пример #10
0
    def test_logging_proxy(self):
        logger = self.setup_logger(loglevel=logging.ERROR,
                                   logfile=None,
                                   root=False)

        with wrap_logger(logger) as sio:
            p = LoggingProxy(logger, loglevel=logging.ERROR)
            p.close()
            p.write("foo")
            self.assertNotIn("foo", sio.getvalue())
            p.closed = False
            p.write("foo")
            self.assertIn("foo", sio.getvalue())
            lines = ["baz", "xuzzy"]
            p.writelines(lines)
            for line in lines:
                self.assertIn(line, sio.getvalue())
            p.flush()
            p.close()
            self.assertFalse(p.isatty())
            self.assertIsNone(p.fileno())