def process_response(self, request, response): from raven.contrib.django.models import client if response.status_code < 400 or response.status_code > 450 or is_ignorable_404( request.get_full_path()) or not client.is_enabled(): return response data = client.get_data_from_request(request) data.update({ 'level': logging.INFO, 'logger': 'http{0}'.format(str(response.status_code)), }) result = client.captureMessage(message='{0}: {1}'.format( getattr(response, 'status_text', 'Page Not Found'), request.build_absolute_uri()), data=data) if not result: return request.sentry = { 'project_id': data.get('project', client.remote.project), 'id': client.get_ident(result), } return response
def process_response(self, request, response): if response.status_code != 404: return response if is_ignorable_404(request.get_full_path()): return response from raven.contrib.django.models import client if not client.is_enabled(): return response data = client.get_data_from_request(request) data.update({ 'level': logging.INFO, 'logger': 'http404', }) result = client.captureMessage(message='Page Not Found: %s' % request.build_absolute_uri(), data=data) if not result: return request.sentry = { 'project_id': data.get('project', client.remote.project), 'id': client.get_ident(result), } return response
def process_response(self, request, response): if response.status_code < 400 or response.status_code == 404: return response from raven.contrib.django.models import client if not client.is_enabled(): return response data = client.get_data_from_request(request) data.update({ "level": logging.WARN, "logger": "BadRequestMiddleware", }) message_template = "{status_code} code returned for URL: {url} {content}" content = "" try: content = "with message: {}".format(str(response.content)) except: pass message = message_template.format(status_code=response.status_code, url=request.build_absolute_uri(), content=content) result = client.captureMessage(message=message, data=data) return response
def process_response(self, request, response): if response.status_code < 400 or response.status_code == 404: return response from raven.contrib.django.models import client if not client.is_enabled(): return response # format error message message = ("{status_code} code returned for URL: {url}" "with message: {message}").format( status_code=response.status_code, url=request.build_absolute_uri(), message=str(response.content), ) # create data representation data = client.get_data_from_request(request) data.update({ "level": logging.WARN, "logger": "BadRequestMiddleware", }) client.captureMessage(message=message, data=data) return response
def process_response(self, request, response): if response.status_code != 404: return response if is_ignorable_404(request.get_full_path()): return response from raven.contrib.django.models import client if not client.is_enabled(): return response data = client.get_data_from_request(request) data.update({ 'level': logging.INFO, 'logger': 'http404', }) result = client.captureMessage(message='Page Not Found: %s' % request.build_absolute_uri(), data=data) if not result: return request.sentry = { 'project_id': data.get('project', client.remote.project), 'id': client.get_ident(result), } return response
def process_response(self, request, response): if response.status_code != 400: return response from raven.contrib.django.models import client if not client.is_enabled(): return response data = client.get_data_from_request(request) # Ignore `django.security.DisallowedHost` errors if re.search(r'\d+\.\d+\.\d+\.\d+', data.get('request', {}).get('url', '')): return response data.update({ 'level': logging.DEBUG, 'logger': 'manual_sentry_logger', }) result = client.captureMessage( message='400 response', data=data, extra={'response': self._parse_response(response)}, ) if not result: return response request.sentry = { 'project_id': data.get('project', client.remote.project), 'id': client.get_ident(result), } return response
def check_reporting(app_configs, **kwargs): errors = [] current_user = pwd.getpwuid(os.getuid()).pw_name # Get all configs if we don't get a specific set if not app_configs: app_configs = apps.apps.app_configs.values() raven_installed = bool(list(filter(lambda app: app.name == "raven.contrib.django.raven_compat", app_configs))) if not raven_installed: errors.append(W001) else: raven_config = getattr(settings, 'RAVEN_CONFIG', None) if raven_config is None or not isinstance(raven_config, dict): errors.append(E001) try: # noinspection PyPackageRequirements,PyUnresolvedReferences from raven.contrib.django.models import client # So we are duplicating code from manage.py raven test here... if not all([client.servers, client.project, client.public_key, client.secret_key]): errors.append(E002) if not client.is_enabled(): errors.append(E003) else: # Test sending data = { 'culprit': 'preflight.checks.check_reporting', 'logger': 'raven.test', 'request': { 'method': 'GET', 'url': 'http://example.com', } } ident = client.get_ident(client.captureMessage( message='This is a test message generated using ``raven test``', data=data, level=logging.INFO, stack=True, tags={}, extra={ 'user': current_user, 'loadavg': os.getloadavg(), }, )) if client.state.did_fail(): errors.append(E004) except ImportError: errors.append(E005) # TODO: check if we actually log something return errors
def process_exception(self, request, exception): from raven.contrib.django.models import client if not client.is_enabled(): return data = client.get_data_from_request(request) data.update( {"level": logging.WARN, "logger": "BadRequestMiddleware",} ) client.captureMessage(message=str(exception), data=data)
def check_reporting(app_configs, **kwargs): errors = [] current_user = pwd.getpwuid(os.getuid()).pw_name # Get all configs if we don't get a specific set if not app_configs: app_configs = apps.apps.app_configs.values() raven_installed = bool( list( filter(lambda app: app.name == "raven.contrib.django.raven_compat", app_configs))) if not raven_installed: errors.append(W001) else: raven_config = getattr(settings, 'RAVEN_CONFIG', None) if raven_config is None or not isinstance(raven_config, dict): errors.append(E001) try: # noinspection PyPackageRequirements,PyUnresolvedReferences from raven.contrib.django.models import client # So we are duplicating code from manage.py raven test here... if not all([ client.servers, client.project, client.public_key, client.secret_key ]): errors.append(E002) if not client.is_enabled(): errors.append(E003) else: # Test sending data = { 'culprit': 'preflight.checks.check_reporting', 'logger': 'raven.test', 'request': { 'method': 'GET', 'url': 'http://example.com', } } ident = client.get_ident( client.captureMessage( message= 'This is a test message generated using ``raven test``', data=data, level=logging.INFO, stack=True, tags={}, extra={ 'user': current_user, 'loadavg': os.getloadavg(), }, )) if client.state.did_fail(): errors.append(E004) except ImportError: errors.append(E005) # TODO: check if we actually log something return errors