Your IP : 216.73.216.213
��Y� � @ s� 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 Gd 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 � S)�
SentryHandlerc s� t | � d k r� | d } t | t � rO | j d t � d | | � | _ n7 t | t � rj | | _ n t d | j j | f � � g } n7 y | j d � | _ Wn t k
r� t
d � � Yn Xt t | � j
| | � d S)N� r Z
client_clsZdsnzSThe 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/python35/lib/python3.5/site-packages/raven/handlers/logbook.pyr s
$
zSentryHandler.__init__c C s� yI | j j d � r; t t | j | � � d t j �d S| j | � SWn� t k
r� | j j
rh � t d d t j �t t | j � d t j �t t t j
� � � y | j j � Wn t k
r� Yn XYn Xd S)N�
sentry.errors�raven�filez>Top level Sentry exception caught - failed creating log record)r r )�channel�
startswith�printr �format�sys�stderr�_emit� Exceptionr Zraise_send_errors�msg� traceback�
format_excZcaptureException)r �recordr r r �emit* s "
zSentryHandler.emitc
C s8 d t j | j � j � d | j i } d } d | j d | j d | j | � i } d | j k rt | j d | d <| j d k s� | j r� t
| j � r� | j j | � } | j
| j | � � d } | j | d
<d | j d | j d
| j d | j d | j i } | j
| j � | j j | d | d | | �S)N�level�loggerzraven.events.Message�message�params� formattedZtagsTzraven.events.Exception�exc_info�lineno�filename�function�process�process_name�data�extra)�logbookZget_level_namer* �lowerr r% r r r r/ �allr Zget_handler�update�capturer0 r1 � func_namer3 r4 r6 )r r( r5 Z
event_typeZhandler_kwargs�handlerr6 r r r r# >