PATH:
opt
/
hc_python
/
lib
/
python3.12
/
site-packages
/
sentry_sdk
# NOTE: this is the logger sentry exposes to users, not some generic logger. import functools import time from typing import TYPE_CHECKING, Any import sentry_sdk from sentry_sdk.utils import capture_internal_exceptions, format_attribute if TYPE_CHECKING: from sentry_sdk._types import Attributes OTEL_RANGES = [ # ((severity level range), severity text) # https://opentelemetry.io/docs/specs/otel/logs/data-model ((1, 4), "trace"), ((5, 8), "debug"), ((9, 12), "info"), ((13, 16), "warn"), ((17, 20), "error"), ((21, 24), "fatal"), ] class _dict_default_key(dict): # type: ignore[type-arg] """dict that returns the key if missing.""" def __missing__(self, key: str) -> str: return "{" + key + "}" def _capture_log( severity_text: str, severity_number: int, template: str, **kwargs: "Any" ) -> None: body = template attributes: "Attributes" = {} if "attributes" in kwargs: provided_attributes = kwargs.pop("attributes") or {} for attribute, value in provided_attributes.items(): attributes[attribute] = format_attribute(value) for k, v in kwargs.items(): attributes[f"sentry.message.parameter.{k}"] = format_attribute(v) if kwargs: # only attach template if there are parameters attributes["sentry.message.template"] = format_attribute(template) with capture_internal_exceptions(): body = template.format_map(_dict_default_key(kwargs)) sentry_sdk.get_current_scope()._capture_log( { "severity_text": severity_text, "severity_number": severity_number, "attributes": attributes, "body": body, "time_unix_nano": time.time_ns(), "trace_id": None, "span_id": None, } ) trace = functools.partial(_capture_log, "trace", 1) debug = functools.partial(_capture_log, "debug", 5) info = functools.partial(_capture_log, "info", 9) warning = functools.partial(_capture_log, "warn", 13) error = functools.partial(_capture_log, "error", 17) fatal = functools.partial(_capture_log, "fatal", 21) def _otel_severity_text(otel_severity_number: int) -> str: for (lower, upper), severity in OTEL_RANGES: if lower <= otel_severity_number <= upper: return severity return "default" def _log_level_to_otel(level: int, mapping: "dict[Any, int]") -> "tuple[int, str]": for py_level, otel_severity_number in sorted(mapping.items(), reverse=True): if level >= py_level: return otel_severity_number, _otel_severity_text(otel_severity_number) return 0, "default"
[-] _compat.py
[edit]
[-] spotlight.py
[edit]
[-] monitor.py
[edit]
[-] sessions.py
[edit]
[-] client.py
[edit]
[-] metrics.py
[edit]
[+]
ai
[-] worker.py
[edit]
[-] serializer.py
[edit]
[-] _werkzeug.py
[edit]
[-] _batcher.py
[edit]
[-] envelope.py
[edit]
[-] _metrics_batcher.py
[edit]
[+]
crons
[-] _log_batcher.py
[edit]
[+]
__pycache__
[-] traces.py
[edit]
[-] _queue.py
[edit]
[-] py.typed
[edit]
[+]
..
[-] attachments.py
[edit]
[-] scope.py
[edit]
[+]
profiler
[-] session.py
[edit]
[-] transport.py
[edit]
[-] feature_flags.py
[edit]
[+]
integrations
[-] types.py
[edit]
[-] logger.py
[edit]
[-] api.py
[edit]
[-] consts.py
[edit]
[-] tracing.py
[edit]
[-] _span_batcher.py
[edit]
[-] debug.py
[edit]
[-] tracing_utils.py
[edit]
[-] utils.py
[edit]
[-] __init__.py
[edit]
[-] _init_implementation.py
[edit]
[-] _types.py
[edit]
[-] _lru_cache.py
[edit]
[-] hub.py
[edit]
[-] scrubber.py
[edit]