@@ -31,6 +31,16 @@ class LoggingLevels(enum.IntEnum):
3131 CRITICAL = 50
3232
3333
34+ SENTRY_LEVEL_FROM_LOGURU_LEVEL = {
35+ "TRACE" : "DEBUG" ,
36+ "DEBUG" : "DEBUG" ,
37+ "INFO" : "INFO" ,
38+ "SUCCESS" : "INFO" ,
39+ "WARNING" : "WARNING" ,
40+ "ERROR" : "ERROR" ,
41+ "CRITICAL" : "CRITICAL" ,
42+ }
43+
3444DEFAULT_LEVEL = LoggingLevels .INFO .value
3545DEFAULT_EVENT_LEVEL = LoggingLevels .ERROR .value
3646# We need to save the handlers to be able to remove them later
@@ -87,14 +97,32 @@ class _LoguruBaseHandler(_BaseHandler):
8797 def _logging_to_event_level (self , record ):
8898 # type: (LogRecord) -> str
8999 try :
90- return LoggingLevels (record .levelno ).name .lower ()
91- except ValueError :
100+ return SENTRY_LEVEL_FROM_LOGURU_LEVEL [
101+ LoggingLevels (record .levelno ).name
102+ ].lower ()
103+ except (ValueError , KeyError ):
92104 return record .levelname .lower () if record .levelname else ""
93105
94106
95107class LoguruEventHandler (_LoguruBaseHandler , EventHandler ):
96108 """Modified version of :class:`sentry_sdk.integrations.logging.EventHandler` to use loguru's level names."""
97109
110+ def __init__ (self , * args , ** kwargs ):
111+ if kwargs .get ("level" ):
112+ kwargs ["level" ] = SENTRY_LEVEL_FROM_LOGURU_LEVEL .get (
113+ kwargs .get ("level" ), DEFAULT_LEVEL
114+ )
115+
116+ super ().__init__ (* args , ** kwargs )
117+
98118
99119class LoguruBreadcrumbHandler (_LoguruBaseHandler , BreadcrumbHandler ):
100120 """Modified version of :class:`sentry_sdk.integrations.logging.BreadcrumbHandler` to use loguru's level names."""
121+
122+ def __init__ (self , * args , ** kwargs ):
123+ if kwargs .get ("level" ):
124+ kwargs ["level" ] = SENTRY_LEVEL_FROM_LOGURU_LEVEL .get (
125+ kwargs .get ("level" ), DEFAULT_LEVEL
126+ )
127+
128+ super ().__init__ (* args , ** kwargs )
0 commit comments