Your IP : 3.138.137.244


Current Path : /opt/alt/python27/lib/python2.7/site-packages/raven/handlers/
Upload File :
Current File : //opt/alt/python27/lib/python2.7/site-packages/raven/handlers/logging.pyc

�
��Yc@@s�dZddlmZddlmZddlZddlZddlZddlZddlm	Z	m
Z
mZddlm
Z
ddlmZddlmZed�Zed�Zdejefd��YZdS(s�
raven.handlers.logging
~~~~~~~~~~~~~~~~~~~~~~

:copyright: (c) 2010-2012 by the Sentry Team, see AUTHORS for more details.
:license: BSD, see LICENSE for more details.
i(tabsolute_import(tprint_functionN(tstring_typest	iteritemst	text_type(tClient(t	to_string(titer_stack_frameststacktnametmoduletfuncNametargstmsgtlevelnotexc_texttexc_infotdatatcreatedt	levelnametmsecstrelativeCreatedttagstmessagecC@s�i}t|dd�}t|t�sF|r=i|d6}qFi}nxvtt|��D]b\}}||krwqYn|jd�r�qYnd|kr�|dkr�|||<qY|||<qYW||fS(NRt_t.tculprittserver_nametfingerprint(RRR(tgetattrtNonet
isinstancetdictRtvarst
startswith(trecordtreservedRtextratktv((sG/opt/alt/python27/lib/python2.7/site-packages/raven/handlers/logging.pyt
extract_extras	
t
SentryHandlercB@s5eZd�Zd�Zd�Zd�Zd�ZRS(cO@s�|jdt�}t|�dkr�|d}t|t�rU|d||�|_q�t|t�rp||_q�td|jj|f��n.d|kr�|d|_n|||�|_|j	dd�|_tj
j|d|jdtj��dS(	Nt
client_clsiitdsnsSThe first argument to %s must be either a Client instance or a DSN, got %r instead.tclientRtlevel(tgetRtlenRRR,t
ValueErrort	__class__t__name__tpopRRtloggingtHandlert__init__tNOTSET(tselfRtkwargsR,targ((sG/opt/alt/python27/lib/python2.7/site-packages/raven/handlers/logging.pyR65s
cC@s |jdkp|jjd�S(Ntravens
sentry.errorssraven.(s
sentry.errorssraven.(R	R"(R8R#((sG/opt/alt/python27/lib/python2.7/site-packages/raven/handlers/logging.pyt
can_recordJscC@s�yM|j|�|j|�s?tt|j�dtj�dS|j|�SWnqtk
r�|j	j
ro�ntddtj�tt|j�dtj�tttj
��dtj�nXdS(Ntfiles>Top level Sentry exception caught - failed creating log record(tformatR<tprintRRtsyststderrt_emitt	ExceptionR,traise_send_errorsR
t	tracebackt
format_exc(R8R#((sG/opt/alt/python27/lib/python2.7/site-packages/raven/handlers/logging.pytemitPs

	
cC@s�t|�}g}t}d}x�|D]�}t|ttf�rO|\}}n||j}}|s�t|di�}	|	jdd�}
|r�|jd�r�|
jd�r�t}q�|
}q%n|j	||f�q%W|s�|S|S(Ntt	f_globalsR2R4(
tlisttFalseRttupletf_linenoRR.R"tTruetappend(R8RR#tframeststartedtlast_modtitemtframetlinenoRItmodule_name((sG/opt/alt/python27/lib/python2.7/site-packages/raven/handlers/logging.pyt_get_targetted_stackbs(
	c
K@st|�\}}t|dd�}|tkr<t�}n|rW|j||�}ntjj|j�}d}i|j	d6}yt
|j�|d<Wn+tk
r�t
|j�dd!|d<nXyt
|j�|d<Wn+tk
rt
|j�dd!|d<nX|jret|j�re|jj|�}	|j|	j|��d}i|jd	6}n|j|d
<|j|d<i|d<}
|jr�|
j|j�n|
jt|di��|j|�|jd
d�}|jj|d|d|d|d|d
||�S(NRsraven.events.MessagetparamsRii����t	formattedsraven.events.ExceptionRR-tloggerRtsample_rateRR%tdate(R(RRRNRRWtdatetimetutcfromtimestampRRRR
tUnicodeDecodeErrortreprRRtallR,tget_handlertupdatetcaptureRR	RR3(R8R#R9RR%RR\t
event_typethandler_kwargsthandlerRR[((sG/opt/alt/python27/lib/python2.7/site-packages/raven/handlers/logging.pyRB�sF




	
	(R2t
__module__R6R<RGRWRB(((sG/opt/alt/python27/lib/python2.7/site-packages/raven/handlers/logging.pyR)4s
				(RR	R
RRR
RRRRRRRRRR(t__doc__t
__future__RRR]R4R@REtraven.utils.compatRRRt
raven.baseRtraven.utils.encodingRtraven.utils.stacksRt	frozensettRESERVEDR(R5tobjectR)(((sG/opt/alt/python27/lib/python2.7/site-packages/raven/handlers/logging.pyt<module>s 	

?>