£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
B
    Y                 @   sn   d Z ddlmZ ddlmZ ddlZddlZddlZddlmZ ddl	m
Z
 ddlmZ G dd	 d	ejZdS )
z
raven.handlers.logbook
~~~~~~~~~~~~~~~~~~~~~~

:copyright: (c) 2010-2012 by the Sentry Team, see AUTHORS for more details.
:license: BSD, see LICENSE for more details.
    )absolute_import)print_functionN)string_types)Client)	to_stringc                   s,   e Zd Z fddZdd Zdd Z  ZS )SentryHandlerc                s   t |dkrh|d }t|tr<|dtf d|i|| _n&t|trN|| _ntd| jj|f g }n.y|d| _W n t	k
r   t
dY nX tt| j|| d S )N   r   Z
client_clsZdsnzSThe first argument to %s must be either a Client instance or a DSN, got %r instead.clientz3Expected keyword argument for SentryHandler: client)len
isinstancer   popr   r	   
ValueError	__class____name__KeyError	TypeErrorsuperr   __init__)selfargskwargsarg)r    G/opt/alt/python37/lib/python3.7/site-packages/raven/handlers/logbook.pyr      s    


zSentryHandler.__init__c             C   s   y2|j dr*tt| |tjd d S | |S  tk
r   | j	j
rL tdtjd tt|jtjd ttt  y| j	  W n tk
r   Y nX Y nX d S )N)zsentry.errorsraven)filez>Top level Sentry exception caught - failed creating log record)channel
startswithprintr   formatsysstderr_emit	Exceptionr	   Zraise_send_errorsmsg	traceback
format_excZcaptureException)r   recordr   r   r   emit*   s    
zSentryHandler.emitc             C   s   t |j |jd}d}|j|j| |d}d|jkrJ|jd |d< |j	dksd|j	rt
|j	r| j|}||jf | d}|j	|d< |j|j|j|j|jd}||j | jj|f||d	|S )
N)levelloggerzraven.events.Message)messageparams	formattedZtagsTzraven.events.Exceptionexc_info)linenofilenamefunctionprocessprocess_name)dataextra)logbookZget_level_namer)   lowerr   r$   r   r   r   r.   allr	   Zget_handlerupdatecapturer/   r0   	func_namer2   r3   r5   )r   r'   r4   Z
event_typeZhandler_kwargshandlerr5   r   r   r   r"   >   s.    




zSentryHandler._emit)r   
__module____qualname__r   r(   r"   __classcell__r   r   )r   r   r      s   r   )__doc__
__future__r   r   r6   r    r%   Zraven.utils.compatr   Z
raven.baser   Zraven.utils.encodingr   Handlerr   r   r   r   r   <module>   s   