Submit
Path:
~
/
/
proc
/
thread-self
/
root
/
opt
/
alt
/
python35
/
lib
/
python3.5
/
site-packages
/
raven
/
handlers
/
__pycache__
/
File Content:
logbook.cpython-35.pyc
��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 � �/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�messageZparamsZ 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�capturer. r/ � func_namer1 r2 r4 )r r( r3 Z event_typeZhandler_kwargs�handlerr4 r r r r# >