Example #1
0
 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)
Example #2
0
 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)
Example #3
0
 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)
Example #4
0
    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)
Example #5
0
    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)