1313
1414if TYPE_CHECKING :
1515 from logging import LogRecord
16- from typing import Optional , Any , Tuple
16+ from typing import Any , Tuple
1717
1818try :
1919 import loguru
2020 from loguru import logger
2121 from loguru ._defaults import LOGURU_FORMAT as DEFAULT_FORMAT
22+
23+ if TYPE_CHECKING :
24+ from loguru import Message
2225except ImportError :
2326 raise DidNotEnable ("LOGURU is not installed" )
2427
@@ -68,10 +71,11 @@ def _loguru_level_to_otel(record_level):
6871class LoguruIntegration (Integration ):
6972 identifier = "loguru"
7073
71- level = DEFAULT_LEVEL # type: Optional[ int]
72- event_level = DEFAULT_EVENT_LEVEL # type: Optional[ int]
74+ level = DEFAULT_LEVEL # type: int
75+ event_level = DEFAULT_EVENT_LEVEL # type: int
7376 breadcrumb_format = DEFAULT_FORMAT
7477 event_format = DEFAULT_FORMAT
78+ sentry_logs_level = DEFAULT_LEVEL # type: int
7579
7680 def __init__ (
7781 self ,
@@ -81,7 +85,7 @@ def __init__(
8185 event_format = DEFAULT_FORMAT ,
8286 sentry_logs_level = DEFAULT_LEVEL ,
8387 ):
84- # type: (Optional[ int], Optional[ int] , str | loguru.FormatFunction, str | loguru.FormatFunction, Optional[ int] ) -> None
88+ # type: (int, int, str | loguru.FormatFunction, str | loguru.FormatFunction, int) -> None
8589 LoguruIntegration .level = level
8690 LoguruIntegration .event_level = event_level
8791 LoguruIntegration .breadcrumb_format = breadcrumb_format
@@ -145,6 +149,7 @@ class LoguruBreadcrumbHandler(_LoguruBaseHandler, BreadcrumbHandler):
145149
146150
147151def loguru_sentry_logs_handler (message ):
152+ # type: (Message) -> None
148153 # This is intentionally a callable sink instead of a standard logging handler
149154 # since like this we get direct access to message.record
150155
@@ -165,9 +170,7 @@ def loguru_sentry_logs_handler(message):
165170
166171 otel_severity_number , otel_severity_text = _python_level_to_otel (record ["level" ].no )
167172
168- attrs = {
169- "sentry.origin" : "auto.logger.loguru" ,
170- }
173+ attrs = {"sentry.origin" : "auto.logger.loguru" } # type: dict[str, Any]
171174
172175 project_root = client .options ["project_root" ]
173176 if record .get ("file" ):
0 commit comments