diff options
author | David Cramer <dcramer@gmail.com> | 2015-07-15 22:42:34 -0700 |
---|---|---|
committer | David Cramer <dcramer@gmail.com> | 2015-07-15 22:42:34 -0700 |
commit | 0ab984b8da5076712d6dce7cfe788b54b039cbf8 (patch) | |
tree | b6787c06bcd73bf5b2c5d281f3599607267fea9d | |
parent | 60944c0b4888529064a1ee99b4e1462327d988a5 (diff) | |
download | raven-0ab984b8da5076712d6dce7cfe788b54b039cbf8.tar.gz |
Capture errors via sys.excepthook
-rw-r--r-- | raven/base.py | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/raven/base.py b/raven/base.py index 9324da5..5d133d9 100644 --- a/raven/base.py +++ b/raven/base.py @@ -117,7 +117,8 @@ class Client(object): _registry = TransportRegistry(transports=default_transports) - def __init__(self, dsn=None, raise_send_errors=False, transport=None, **options): + def __init__(self, dsn=None, raise_send_errors=False, transport=None, + install_sys_hook=True, **options): global Raven o = options @@ -174,6 +175,9 @@ class Client(object): self._context = Context() + if install_sys_hook: + self.install_sys_hook() + def set_dsn(self, dsn=None, transport=None): if dsn is None and os.environ.get('SENTRY_DSN'): msg = "Configuring Raven from environment variable 'SENTRY_DSN'" @@ -196,6 +200,12 @@ class Client(object): self.logger.debug("Configuring Raven for host: {0}".format(self.remote)) + def install_sys_hook(self): + def handle_exception(*exc_info): + sys.__excepthook__(*exc_info) + self.captureException(exc_info=exc_info) + sys.excepthook = handle_exception + @classmethod def register_scheme(cls, scheme, transport_class): cls._registry.register_scheme(scheme, transport_class) |