8000 feat: Add debug log support in client init (#115) · etherscan-io/sentry-python@35cfa0d · GitHub
[go: up one dir, main page]

Skip to content

Commit 35cfa0d

Browse files
mitsuhikountitaker
authored andcommitted
feat: Add debug log support in client init (getsentry#115)
* feat: Add debug log support in client init * fix: Work around contextvar shim
1 parent b50b0b3 commit 35cfa0d

File tree

3 files changed

+32
-12
lines changed

3 files changed

+32
-12
lines changed

sentry_sdk/client.py

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@
1717
from sentry_sdk.transport import make_transport
1818
from sentry_sdk.consts import DEFAULT_OPTIONS, SDK_INFO
1919
from sentry_sdk.integrations import setup_integrations
20+
from sentry_sdk.utils import ContextVar
21+
22+
23+
_client_init_debug = ContextVar("client_init_debug")
2024

2125

2226
def get_options(*args, **kwargs):
@@ -50,20 +54,25 @@ class Client(object):
5054
"""
5155

5256
def __init__(self, *args, **kwargs):
53-
self.options = options = get_options(*args, **kwargs)
54-
self.transport = make_transport(options)
55-
56-
request_bodies = ("always", "never", "small", "medium")
57-
if options["request_bodies"] not in request_bodies:
58-
raise ValueError(
59-
"Invalid value for request_bodies. Must be one of {}".format(
60-
request_bodies
57+
old_debug = _client_init_debug.get(False)
58+
try:
59+
self.options = options = get_options(*args, **kwargs)
60+
_client_init_debug.set(options["debug"])
61+
self.transport = make_transport(options)
62+
63+
request_bodies = ("always", "never", "small", "medium")
64+
if options["request_bodies"] not in request_bodies:
65+
raise ValueError(
66+
"Invalid value for request_bodies. Must be one of {}".format(
67+
request_bodies
68+
)
6169
)
62-
)
6370

64-
self.integrations = setup_integrations(
65-
options["integrations"], with_defaults=options["default_integrations"]
66-
)
71+
self.integrations = setup_integrations(
72+
options["integrations"], with_defaults=options["default_integrations"]
73+
)
74+
finally:
75+
_client_init_debug.set(old_debug)
6776

6877
@property
6978
def dsn(self 10000 ):

sentry_sdk/debug.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,13 @@
44
from sentry_sdk import utils
55
from sentry_sdk.hub import Hub
66
from sentry_sdk.utils import logger
7+
from sentry_sdk.client import _client_init_debug
78

89

910
class _HubBasedClientFilter(logging.Filter):
1011
def filter(self, record):
12+
if _client_init_debug.get(False):
13+
return True
1114
hub = Hub.current
1215
if hub is not None and hub.client is not None:
1316
return hub.client.options["debug"]

sentry_sdk/integrations/__init__.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ def setup_integrations(integrations, with_defaults=True):
4646
(integration.identifier, integration) for integration in integrations or ()
4747
)
4848

49+
logger.debug("Setting up integrations (with default = %s)", with_defaults)
50+
4951
if with_defaults:
5052
for integration_cls in iter_default_integrations():
5153
if integration_cls.identifier not in integrations:
@@ -55,6 +57,9 @@ def setup_integrations(integrations, with_defaults=True):
5557
for identifier, integration in iteritems(integrations):
5658
with _installer_lock:
5759
if identifier not in _installed_integrations:
60+
logger.debug(
61+
"Setting up previously not enabled integration %s", identifier
62+
)
5863
try:
5964
type(integration).setup_once()
6065
except NotImplementedError:
@@ -69,6 +74,9 @@ def setup_integrations(integrations, with_defaults=True):
6974
raise
7075
_installed_integrations.add(identifier)
7176

77+
for identifier in integrations:
78+
logger.debug("Enabling integration %s", identifier)
79+
7280
return integrations
7381

7482

0 commit comments

Comments
 (0)
0