def _generate_xml(self, exception,message = ""): _,_,trace = sys.exc_info() xml = XMLBuilder() tb_dict = {} tb = traceback.extract_tb(trace) with xml.notice(version = 2.0): xml << ('api-key', self.environment.api_key) with xml.notifier: xml << ('name', self.environment.name) xml << ('version', self.environment.version) xml << ('url', self.environment.url) with xml('server-environment'): xml << ('environment-name', self.environment.environment_name) with xml.error: xml << ('class', exception.__class__.__name__) if message == "": xml << ('message', str(exception)) else: xml << ('message', str(exception) + '\n\n' + message) with xml.backtrace: for trace in tb: tb_dict['filename'] = trace[0] tb_dict['line_number'] = trace[1] tb_dict['function_name'] = trace[2] xml << ('line', { 'file':tb_dict.get('filename', 'unknown'), 'number':tb_dict.get('line_number', 'unknown'), 'method':tb_dict.get('function_name', 'unknown') }) return str(xml)
def _generate_xml(self, exception): _,_,trace = sys.exc_info() xml = XMLBuilder() with xml.notice(version = 2.0): xml << ('api-key', self.environment.api_key) with xml.notifier: xml << ('name', self.environment.name) xml << ('version', self.environment.version) xml << ('url', self.environment.url) with xml('server-environment'): xml << ('environment-name', self.environment.environment_name) with xml.error: xml << ('class', exception.__class__.__name__) xml << ('message', str(exception)) with xml.backtrace: [xml << ('line', {'file':filename, 'number':line_number, 'method':function_name}) \ for filename, line_number, function_name, _ in traceback.extract_tb(trace)] return str(xml)
def _generate_xml(self, exception, additional_information=None): _,_,trace = sys.exc_info() xml = XMLBuilder() tb_dict = {} tb = traceback.extract_tb(trace) if tb: tb = tb[0] tb_dict['filename'] = tb[0] tb_dict['line_number'] = tb[1] tb_dict['function_name'] = tb[2] message = str(exception) if additional_information: message = 'error: %s, additional info: %s' % (message, additional_information) with xml.notice(version = 2.0): xml << ('api-key', self.api_key) with xml.notifier: xml << ('name', self.name) xml << ('version', self.version) xml << ('url', self.url) with xml('server-environment'): xml << ('environment-name', self.environment_name) with xml.error: xml << ('class', exception.__class__.__name__) xml << ('message', message) with xml.backtrace: xml << ('line', { 'file':tb_dict.get('filename', 'unknown'), 'number':tb_dict.get('line_number', 'unknown'), 'method':tb_dict.get('function_name', 'unknown') }) return str(xml)
def _generate_xml(self, exception=None, request=None): _, _, trace = sys.exc_info() xml = XMLBuilder() tb_dict = {} tb = traceback.extract_tb(trace) if tb: tb = tb[0] tb_dict["filename"] = tb[0] tb_dict["line_number"] = tb[1] tb_dict["function_name"] = tb[2] site = Site.objects.get_current() with xml.notice(version=2.0): xml << ("api-key", self.settings["API_KEY"]) with xml.notifier: xml << ("name", site.name) xml << ("version", "0.0.1") xml << ("url", site.domain) if request: with xml.request: if request.is_secure(): scheme = "https" else: scheme = "http" url = "%s://%s%s" % (scheme, request.get_host(), request.get_full_path()) xml << ("url", url) cb, _, _ = resolve(request.path) xml << ("component", cb.__module__) xml << ("action", cb.__name__) if len(request.POST): with xml.params: for key, val in request.POST.items(): xml << ("var", str(val), {"key": key}) session = request.session.items() if len(session): with xml.session: for key, val in session.items(): xml << ("var", str(val), {"key": key}) with xml("cgi-data"): for key, val in request.META.items(): xml << ("var", str(val), {"key": key}) with xml("server-environment"): xml << ("environment-name", self.settings["ENVIRONMENT"]) if exception: with xml.error: xml << ("class", exception.__class__.__name__) xml << ("message", str(exception)) with xml.backtrace: xml << ( "line", { "file": tb_dict.get("filename", "unknown"), "number": tb_dict.get("line_number", "unknown"), "method": tb_dict.get("function_name", "unknown"), }, ) return str(xml)
def _generate_xml(self, exception=None, request=None): _, _, trace = sys.exc_info() xml = XMLBuilder() tb_dict = {} tb = traceback.extract_tb(trace) if tb: tb = tb[0] tb_dict['filename'] = tb[0] tb_dict['line_number'] = tb[1] tb_dict['function_name'] = tb[2] site = Site.objects.get_current() with xml.notice(version=2.0): xml << ('api-key', self.settings['API_KEY']) with xml.notifier: xml << ('name', site.name) xml << ('version', '0.0.1') xml << ('url', site.domain) if request: with xml.request: if request.is_secure(): scheme = 'https' else: scheme = 'http' url = '%s://%s%s' % (scheme, request.get_host(), request.get_full_path()) xml << ('url', url) cb, _, _ = resolve(request.path) xml << ('component', cb.__module__) xml << ('action', cb.__name__) if len(request.POST): with xml.params: for key, val in request.POST.items(): xml << ('var', str(val), {'key': key}) session = request.session.items() if len(session): with xml.session: for key, val in session.items(): xml << ('var', str(val), {'key': key}) with xml('cgi-data'): for key, val in request.META.items(): xml << ('var', str(val), {'key': key}) with xml('server-environment'): xml << ('environment-name', self.settings['ENVIRONMENT']) if exception: with xml.error: xml << ('class', exception.__class__.__name__) xml << ('message', str(exception)) with xml.backtrace: xml << ('line', { 'file': tb_dict.get('filename', 'unknown'), 'number': tb_dict.get('line_number', 'unknown'), 'method': tb_dict.get('function_name', 'unknown') }) return str(xml)