Exemple #1
0
def log_python_exception(exception):
    userInfo = exception.userInfo()
    try:
        tb = userInfo['__pyobjc_exc_traceback__']
    except KeyError:
        tb = userInfo['__pyobjc_exc_value__'].__traceback__
    log.error('Python exception discarded\n' +
        ''.join(traceback.format_exception(
            userInfo['__pyobjc_exc_type__'],
            userInfo['__pyobjc_exc_value__'],
            tb)))
    if tb is None and NSStackTraceKey in userInfo:
        return log_objc_exception(exception)
    # we logged it, so don't log it for us
    return False
Exemple #2
0
 def unexpected_error():
     """error handler function for objc.AppHelper.runEventLoop"""
     root_log.error("unexpected error", exc_info=True)
     return True
Exemple #3
0
def log_objc_exception(exception):
    stack = get_objc_traceback(exception)
    stack = "\n{}".format(stack) if stack else ""
    log.error("ObjC exception discarded: %s: %s%s",
        exception.name(), exception.reason(), stack)
    return False  # tell pyobjc not to log exception