Your IP : 216.73.216.60


Current Path : /opt/alt/python35/lib/python3.5/site-packages/raven/handlers/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib/python3.5/site-packages/raven/handlers/__pycache__/logging.cpython-35.pyc



��Yp�@s�dZddlmZddlmZddlZddlZddlZddlZddlm	Z	m
Z
mZddlm
Z
ddlmZddlmZed�Zedd�ZGdd�deje�ZdS)z�
raven.handlers.logging
~~~~~~~~~~~~~~~~~~~~~~

: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�	iteritems�	text_type)�Client)�	to_string)�iter_stack_frames�stack�name�module�funcName�args�msg�levelno�exc_text�exc_info�data�created�	levelname�msecs�relativeCreated�tags�messagecCs�i}t|dd�}t|t�sB|r<d|i}ni}xptt|��D]\\}}||krpqU|jd�r�qUd|kr�|dkr�|||<qU|||<qUW||fS)Nr�_�.�culprit�server_name�fingerprint)rrr)�getattr�
isinstance�dictr�vars�
startswith)�record�reservedr�extra�k�v�r)�G/opt/alt/python35/lib/python3.5/site-packages/raven/handlers/logging.py�
extract_extras
r+c@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�
SentryHandlercOs�|jdt�}t|�dkr�|d}t|t�rU|d||�|_q�t|t�rp||_q�td|jj|f��n.d|kr�|d|_n|||�|_|j	dd�|_
tjj
|d|jdtj��dS)	NZ
client_cls�rZdsnzSThe first argument to %s must be either a Client instance or a DSN, got %r instead.�clientr�level)�getr�lenr rr.�
ValueError�	__class__�__name__�popr�logging�Handler�__init__�NOTSET)�selfr�kwargsr.�argr)r)r*r85s
zSentryHandler.__init__cCs |jdkp|jjd�S)N�raven�
sentry.errors�raven.)r>r?)rr#)r:r$r)r)r*�
can_recordJszSentryHandler.can_recordcCs�yM|j|�|j|�s?tt|j�dtj�dS|j|�SWnotk
r�|j	j
rl�tddtj�tt|j�dtj�tttj
��dtj�YnXdS)N�filez>Top level Sentry exception caught - failed creating log record)�formatr@�printrr�sys�stderr�_emit�	Exceptionr.Zraise_send_errorsr�	traceback�
format_exc)r:r$r)r)r*�emitPs

	
zSentryHandler.emitcCs�t|�}g}d}d}x�|D]�}t|ttf�rO|\}}n||j}}|s�t|di�}	|	jdd�}
|r�|jd�r�|
jd�r�d}n	|
}q%|j||f�q%W|s�|S|S)NF��	f_globalsr4r6T)�listr �tuple�f_linenorr0r#�append)r:r
r$�frames�startedZlast_mod�item�frame�linenorL�module_namer)r)r*�_get_targetted_stackbs(
	z"SentryHandler._get_targetted_stackcKst|�\}}t|dd�}|dkr9t�}|rQ|j||�}tjj|j�}d}d|ji}yt|j	�|d<Wn/t
k
r�t|j	�dd�|d<YnXyt|j�|d<Wn/t
k
rt|j�dd�|d<YnX|j
rbt|j
�rb|jj|�}	|j|	j|��d}d	|j
i}|j|d
<|j|d<i|d<}
|jr�|
j|j�|
jt|di��|j|�|jd
d�}|jj|d|d|d|d|d
||�S)Nr
Tzraven.events.Message�paramsrr-�	formattedzraven.events.Exceptionrr/�loggerr�sample_raterr&�date���r])r+rr	rW�datetime�utcfromtimestamprrrr�UnicodeDecodeError�reprrr�allr.Zget_handler�update�capturerrrr5)r:r$r;rr&r
r\Z
event_typeZhandler_kwargs�handlerrr[r)r)r*rF�sD	
"
"

	
	zSentryHandler._emitN)r4�
__module__�__qualname__r8r@rJrWrFr)r)r)r*r,4s
r,)r
rrr
rrrrrrrrrrrr)�__doc__�
__future__rrr^r6rDrHZraven.utils.compatrrrZ
raven.baserZraven.utils.encodingrZraven.utils.stacksr	�	frozensetZRESERVEDr+r7�objectr,r)r)r)r*�<module>s