<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
U
    \                     @   s   d dl mZ d dlZd dlZd dlmZ d dlmZmZm	Z	m
Z
 d dlmZ ejZejZedgZdd ZG d	d
 d
eZdd Zdd Zdd ZedZdd ZG dd deje Z!e!Z"G dd deje Z#dS )    )absolute_importN)Hub)	to_stringevent_from_exceptioncurrent_stacktracecapture_internal_exceptions)Integrationzsentry_sdk.errorsc                 C   s   t |  dS )zThis disables the breadcrumb integration for a logger of a specific
    name.  This primary use is for some integrations to disable breadcrumbs
    of this integration.
    N)_IGNORED_LOGGERSadd)name r   P/opt/alt/python38/lib/python3.8/site-packages/sentry_sdk/integrations/logging.pyignore_logger   s    r   c                   @   s2   e Zd ZdZeefddZdd Zedd Z	dS )	LoggingIntegrationloggingc                 C   s8   d | _ d | _|d k	r t|d| _|d k	r4t|d| _ d S )N)level)_handler_breadcrumb_handlerBreadcrumbHandlerEventHandler)selfr   Zevent_levelr   r   r   __init__'   s    zLoggingIntegration.__init__c                 C   sL   | j d k	r$|j| j jkr$| j | | jd k	rH|j| jjkrH| j| d S N)r   levelnor   handler   r   recordr   r   r   _handle_record2   s    z!LoggingIntegration._handle_recordc                     s    t jj  fdd} | t j_d S )Nc              	      s>   z | |W S |j tkr8tjt}|d k	r8|| X d S r   )r   r	   r   currentZget_integrationr   r   )r   r   ZintegrationZold_callhandlersr   r   sentry_patched_callhandlersB   s    
zBLoggingIntegration.setup_once.<locals>.sentry_patched_callhandlers)r   ZLoggerZcallHandlers)r    r   r   r   
setup_once=   s    zLoggingIntegration.setup_onceN)
__name__
__module____qualname__
identifierDEFAULT_LEVELDEFAULT_EVENT_LEVELr   r   staticmethodr!   r   r   r   r   r   $   s
   r   c                 C   s
   | j tkS r   )r   r	   r   r   r   r   _can_recordS   s    r*   c                 C   s*   dt | j| j| jtj| jt| dS )Nlog)tyr   categorymessage	timestampdata)_logging_to_event_level	levelnamer   r.   datetimefromtimestampcreated_extra_from_recordr)   r   r   r   _breadcrumb_from_recordX   s    r7   c                 C   s   ddi |  |  S )NZcriticalfatal)getlower)r2   r   r   r   r1   d   s    r1   )argsr5   r0   exc_infoZexc_textfilenameZfuncNamer2   r   Zlinennolinenor.   moduleZmsecsmsgr   pathnameprocessZprocessNameZrelativeCreatedstackZtagsthreadZ
threadNamec                 C   s   dd t |  D S )Nc                 S   s(   i | ] \}}|t kr|d s||qS )_)COMMON_RECORD_ATTRS
startswith).0kvr   r   r   
<dictcomp>   s
    
 z&_extra_from_record.<locals>.<dictcomp>)varsitemsr)   r   r   r   r6      s    
r6   c                   @   s   e Zd Zdd Zdd ZdS )r   c              
   C   s2   t  " | | | |W  5 Q R  S Q R X d S r   r   format_emitr   r   r   r   emit   s    
zEventHandler.emitc              	   C   s   t |sd S tj}|jd kr d S d }|jj}|jd k	r`|jd d k	r`t|j|dddd\}}nN|jr|jd d kri }d }t   t|d dddg|d	< W 5 Q R X ni }t	|j
|d
< |j|d< t|j|jd|d< t||d< |j||d d S )Nr   r   T)typeZhandled)client_optionsZ	mechanismZwith_localsF)Z
stacktraceZcrashedr   threadsr   logger)r.   paramsZlogentryextrahint)r*   r   r   Zclientoptionsr<   r   r   r   r1   r2   r   r   r@   r;   r6   Zcapture_event)r   r   ZhubrY   rS   eventr   r   r   rP      s8    


zEventHandler._emitNr"   r#   r$   rQ   rP   r   r   r   r   r      s   r   c                   @   s   e Zd Zdd Zdd ZdS )r   c              
   C   s2   t  " | | | |W  5 Q R  S Q R X d S r   rN   r   r   r   r   rQ      s    
zBreadcrumbHandler.emitc                 C   s(   t |sd S tjjt|d|id d S )NZ
log_recordrX   )r*   r   r   Zadd_breadcrumbr7   r   r   r   r   rP      s     zBreadcrumbHandler._emitNr\   r   r   r   r   r      s   r   )$
__future__r   r   r3   Zsentry_sdk.hubr   Zsentry_sdk.utilsr   r   r   r   Zsentry_sdk.integrationsr   Z	LogRecordZAnyDictOptionalINFOr&   ERRORr'   setr	   r   r   r*   r7   r1   	frozensetrF   r6   ZHandlerobjectr   ZSentryHandlerr   r   r   r   r   <module>   s(   
	/	1