diff --git a/sentry_sdk/client.py b/sentry_sdk/client.py index 5094e17597..0b190f5304 100644 --- a/sentry_sdk/client.py +++ b/sentry_sdk/client.py @@ -17,6 +17,10 @@ from sentry_sdk.transport import make_transport from sentry_sdk.consts import DEFAULT_OPTIONS, SDK_INFO from sentry_sdk.integrations import setup_integrations +from sentry_sdk.utils import ContextVar + + +_client_init_debug = ContextVar("client_init_debug") def get_options(*args, **kwargs): @@ -50,20 +54,25 @@ class Client(object): """ def __init__(self, *args, **kwargs): - self.options = options = get_options(*args, **kwargs) - self.transport = make_transport(options) - - request_bodies = ("always", "never", "small", "medium") - if options["request_bodies"] not in request_bodies: - raise ValueError( - "Invalid value for request_bodies. Must be one of {}".format( - request_bodies + old_debug = _client_init_debug.get(False) + try: + self.options = options = get_options(*args, **kwargs) + _client_init_debug.set(options["debug"]) + self.transport = make_transport(options) + + request_bodies = ("always", "never", "small", "medium") + if options["request_bodies"] not in request_bodies: + raise ValueError( + "Invalid value for request_bodies. Must be one of {}".format( + request_bodies + ) ) - ) - self.integrations = setup_integrations( - options["integrations"], with_defaults=options["default_integrations"] - ) + self.integrations = setup_integrations( + options["integrations"], with_defaults=options["default_integrations"] + ) + finally: + _client_init_debug.set(old_debug) @property def dsn(self): diff --git a/sentry_sdk/debug.py b/sentry_sdk/debug.py index b524501a9a..5922a50c51 100644 --- a/sentry_sdk/debug.py +++ b/sentry_sdk/debug.py @@ -4,10 +4,13 @@ from sentry_sdk import utils from sentry_sdk.hub import Hub from sentry_sdk.utils import logger +from sentry_sdk.client import _client_init_debug class _HubBasedClientFilter(logging.Filter): def filter(self, record): + if _client_init_debug.get(False): + return True hub = Hub.current if hub is not None and hub.client is not None: return hub.client.options["debug"] diff --git a/sentry_sdk/integrations/__init__.py b/sentry_sdk/integrations/__init__.py index fb97e0ad10..f1b69766d3 100644 --- a/sentry_sdk/integrations/__init__.py +++ b/sentry_sdk/integrations/__init__.py @@ -44,6 +44,8 @@ def setup_integrations(integrations, with_defaults=True): (integration.identifier, integration) for integration in integrations or () ) + logger.debug("Setting up integrations (with default = %s)", with_defaults) + if with_defaults: for integration_cls in iter_default_integrations(): if integration_cls.identifier not in integrations: @@ -53,6 +55,9 @@ def setup_integrations(integrations, with_defaults=True): for identifier, integration in iteritems(integrations): with _installer_lock: if identifier not in _installed_integrations: + logger.debug( + "Setting up previously not enabled integration %s", identifier + ) try: type(integration).setup_once() except NotImplementedError: @@ -67,6 +72,9 @@ def setup_integrations(integrations, with_defaults=True): raise _installed_integrations.add(identifier) + for identifier in integrations: + logger.debug("Enabling integration %s", identifier) + return integrations