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
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
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
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
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())
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())
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()
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()
'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)