Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 21 additions & 12 deletions sentry_sdk/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand Down Expand Up @@ -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):
Expand Down
3 changes: 3 additions & 0 deletions sentry_sdk/debug.py
Original file line number Diff line number Diff line change
Expand Up @@ -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"]
Expand Down
8 changes: 8 additions & 0 deletions sentry_sdk/integrations/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -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:
Expand All @@ -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


Expand Down