Commits

Kevin Veroneau  committed 3f5fa15

Initial work on logging.Handler, untested.

  • Participants
  • Parent commits fb6b648

Comments (0)

Files changed (1)

File loggers/handler.py

+# -*- coding: utf-8 -*-
+import logging
+import traceback
+from api import API
+
+class BitbucketHandler(logging.Handler):
+    def __init__(self):
+        logging.Handler.__init__(self)
+        self.include_html = False
+        
+    def emit(self, record):
+        try:
+	    request = record.request
+	    title = '%s (%s IP): %s' % (record.levelname, (request.META.get('REMOTE_ADDR') or 'EXTERNAL'), record.getMessage())
+	    filter = get_exception_reporter_filter(request)
+	    request_repr = filter.get_request_repr(request)
+	except Exception:
+	    title = '%s: %s' % (record.levelname, record.getMessage())
+	    request = None
+	    request_repr = "Request repr() unavailable."
+	title = title.replace("\n", "").replace("\r", "")
+	if record.exc_info:
+	    exc_info = record.exc_info
+	    stack_trace = "\n".join(traceback.format_exception(*record.exc_info))
+	else:
+	    exc_info = (None, record.getMessage(), None)
+	    stack_trace = 'No stack trace available'
+	content = "%s\n\n%s" % (stack_trace, request_repr)
+	api = API("kveroneau", "**password**")
+	issue = api.new_issue(self, "kveroneau", "python-bitbucket")
+	issue.title = title
+	issue.content = content
+	json = issue.save()