Source

python-bitbucket / 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()
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.