0iD6ddlZddlZddlmZmZddlmZddlZddlmZddlm Z ddl m Z m Z m Z mZmZmZddlmZddlmZerdd lmZdd lmZdd lmZdd lmZdd lmZej6Zej:Zej>dej@dej6dejBdejDdej:dejFdejHdiZ%ejHdej:dejDdej6dej@diZ&e'gdZ(dZ)GddeZ*GddejVZ,Gdd e,Z-e-Z.Gd!d"e,Z/Gd#d$e,Z0y)%N)datetimetimezone)fnmatch) BaseClient)_log_level_to_otel) safe_repr to_stringevent_from_exceptioncurrent_stacktracecapture_internal_exceptionshas_logs_enabled) Integration) TYPE_CHECKING)MutableMapping) LogRecord)Any)Dict)Optionalnotsetdebuginfowarningerrorfatal )zsentry_sdk.errorszurllib3.connectionpoolzurllib3.connectionc.tj|y)a|This disables recording (both in breadcrumbs and as events) calls to a logger of a specific name. Among other uses, many of our integrations use this to prevent their actions being recorded as breadcrumbs. Exposed to users as a way to quiet spammy loggers. :param name: The name of the logger to ignore (same string you would pass to ``logging.getLogger``). N)_IGNORED_LOGGERSadd)names N/opt/hc_python/lib/python3.12/site-packages/sentry_sdk/integrations/logging.py ignore_loggerr%>sc4eZdZdZeeefdZdZedZ y)LoggingIntegrationloggingcd|_d|_d|_|t||_|t ||_|t ||_yy)N)level)_handler_breadcrumb_handler_sentry_logs_handlerBreadcrumbHandlerSentryLogsHandler EventHandler)selfr+ event_levelsentry_logs_levels r$__init__zLoggingIntegration.__init__OsY #' $(!  '8u'ED $  ((9@Q(RD %  "({;DM #r&c|j>|j|jjk\r|jj||j>|j|jjk\r|jj||j @|j|j jk\r|j j|yyyN)r,levelnor+handler-r.r2records r$_handle_recordz!LoggingIntegration._handle_recordcs == $4==;N;N)N MM  (  $ $ 0$":":"@"@@  $ $ + +F 3  % % 1$";";"A"AA  % % , ,V 4B 2r&cntjjfd}|tj_y)Nct} |||Y|jj|vr.sentry_patched_callhandlersys/O ;'f5$/ ))+?B","7"7"9"I"I*#K#.#226:/ C0O/ ))+?B","7"7"9"I"I*#K#.#226:/ C0s A--AC )r)Logger callHandlers)rFrEs @r$ setup_oncezLoggingIntegration.setup_oncets)#>>66 ;.'B#r&N) __name__ __module__ __qualname__ identifier DEFAULT_LEVELDEFAULT_EVENT_LEVELr5r< staticmethodrIr&r$r(r(Ls2J'' <(5"BBr&r(c.eZdZedZdZdZdZy) _BaseHandler)argscreatedexc_infoexc_textfilenamefuncName levelnamer8linennolinenomessagemodulemsecsmsgr#pathnameprocess processNamerelativeCreatedstacktagstaskNamethread threadName stack_infocftD](}t|jj|s(yy)z'Prevents ignored loggers from recordingFT)r!rr#r?)r2r;loggers r$ _can_recordz_BaseHandler._can_records-'Fv{{((*F3'r&ctj|j|jr|jj SdS)N)LOGGING_TO_EVENT_LEVELgetr8rZlowerr:s r$_logging_to_event_levelz$_BaseHandler._logging_to_event_levelsB%)) NN8H8HF,,224  NP  r&ct|jDcic]7\}}||jvr$t|tr|j ds||9c}}Scc}}w)N_)varsitemsCOMMON_RECORD_ATTRS isinstancestr startswith)r2r;kvs r$_extra_from_recordz_BaseHandler._extra_from_recordsaV **, ,10003'q||C/@ qD,   srrrrrcriticalr+rl) z py.warningsz%srQ)r] formattedparamslogentryextrahint)rmr@rA is_activeoptionsrVr rjr r rsr#sys version_infor`rTr getMessager~ capture_event) r2r;clientreventrr+r]rs r$rzEventHandler._emits' &&(!  ??vq1=.-#,>KE4 oo&//!"4"<ARARED,.*<8F$=9"2@@R1S + (-'+   $i /. ED#\,,V4 N N"E'N ++h   w & }, d" kk!nGFjjG[[F!)**, j 008g  T2a/.s 3F33F<N)rJrKrL__doc__rrrQr&r$r1r1s & J3r&r1c"eZdZdZdZdZdZy)r/z A logging handler that records breadcrumbs for each log record. Note that you do not have to use this class if the logging integration is enabled, which it is by default. ct5|j||j|cdddS#1swYyxYwr7rr:s r$rzBreadcrumbHandler.emit/rrcx|j|sytj|j|d|iy)Nrr)rmr@add_breadcrumb_breadcrumb_from_recordr:s r$rzBreadcrumbHandler._emit5s6' !!  ( ( 0 f7M r&cd|j||j|jtj|j t j|j|dS)Nlog)rr+categoryr] timestampdata) rsr#r]r fromtimestamprUrutcr~r:s r$rz)BreadcrumbHandler._breadcrumb_from_record>sS11&9 ~~!// M++F3   r&N)rJrKrLrrrrrQr&r$r/r/(s &    r&r/ceZdZdZdZdZy)r0z A logging handler that records Sentry logs for each Python log record. Note that you do not have to use this class if the logging integration is enabled, which it is by default. cXt5|j||j|s dddytj}|j s dddyt |js dddy|j||dddy#1swYyxYwr7) r rrmr@rArr r_capture_log_from_record)r2r;rs r$rzSentryLogsHandler.emitQs ( * KK ##F++ *  **,F##%+ *$FNN3+ *  ) )&& 9+ * *s$B %B &B B  B)c t|jt\}}|jd}|j |}d|d<d}|j t |j trft|j }t|j D]8\}} t | ttttfr| n t| |d|<:nt |j trjt|j }|j jD]8\} } t | ttttfr| n t| |d| <:|r)t |j tr|j |d<|j"r|j"|d<|j$rK|:|j$j'|r|j$t)|dzd|d <n|j$|d <|j*r|j*|d <|j,r|j,|d <|j.r|j.|d <|j0r|j0|d <|j2r|j2|d<|j4r|j4|d<|j7|||j8|t|j:dzddy)N project_rootzauto.log.stdlibz sentry.originFzsentry.message.parameter.zsentry.message.templatezcode.line.numberzcode.file.pathzcode.function.namez thread.idz thread.namez process.pidzprocess.executable.namez logger.namegeA) severity_textseverity_numberbody attributestime_unix_nanotrace_id)rr8SEVERITY_TO_OTEL_SEVERITYrr~rTrytuplebool enumeraterzfloatintrdictrwr`r\rar{lenrYrhrirbrcr# _capture_logr]rU) r2rr;otel_severity_numberotel_severity_textrattrsparameters_setiargkeyvalues r$rz*SentryLogsHandler._capture_log_from_recordasq3E NN54 00~~n5 ''/!2o ;; "&++u-!%fkk!2' 4FAs&cCT+BC&s^5aS9:5 FKK.!%fkk!2"(++"3"3"5JC&ec5#t-DE&u-5cU;<#6 jS906zzE+ , ==(. E$ % ??'FOO,F,F|,T*0//#l:Ka:O:Q*R&'*0//&' ??*0//E& ' ==!'E+    #)#4#4E- >>#)>>E-   /5/A/AE+ , ;;#);;E-  !3#7#"%fnns&:";   r&N)rJrKrLrrrrQr&r$r0r0Js : D r&r0)1r)rrrrr@sentry_sdk.clientrsentry_sdk.loggerrsentry_sdk.utilsrr r r r r sentry_sdk.integrationsrtypingrcollections.abcrrrrrINFOrNERRORrONOTSETDEBUGWARNWARNINGFATALCRITICALrprsetr!r%r(HandlerrSr1 SentryHandlerr/r0rQr&r$rsD '(00 .! mm NNH MM7 LL& LL) OOY MM7 MM7 g  b MM2 OOR LL! MM1 I DBDBN4 7??4 nW3<W3v   D[ [ r&