File: //opt/alt/python27/lib/python2.7/site-packages/raven/handlers/logging.pyo
�
��Yc           @@ 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 Z d d l m	 Z	 m
 Z
 m Z d d l m
 Z
 d d l m Z d d l m Z e d � Z e d � Z d e j e f d �  �  YZ d S(   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    (   t   absolute_import(   t   print_functionN(   t   string_typest	   iteritemst	   text_type(   t   Client(   t	   to_string(   t   iter_stack_framest   stackt   namet   modulet   funcNamet   argst   msgt   levelnot   exc_textt   exc_infot   datat   createdt	   levelnamet   msecst   relativeCreatedt   tagst   messagec         C@ s�   i  } t  |  d d  � } t | t � sF | r= i | d 6} qF i  } n  xv t t |  � � D]b \ } } | | k rw qY n  | j d � r� qY n  d | k r� | d k r� | | | <qY | | | <qY W| | f S(   NR   t   _t   .t   culpritt   server_namet   fingerprint(   R   R   R   (   t   getattrt   Nonet
   isinstancet   dictR   t   varst
   startswith(   t   recordt   reservedR   t   extrat   kt   v(    (    sG   /opt/alt/python27/lib/python2.7/site-packages/raven/handlers/logging.pyt
   extract_extra   s    	
t
   SentryHandlerc           B@ s5   e  Z d  �  Z d �  Z d �  Z d �  Z d �  Z RS(   c         O@ s�   | j  d t � } t | � d k r� | d } t | t � rU | d | | � |  _ q� t | t � rp | |  _ q� t d |  j j | f � � n. d | k r� | d |  _ n | | | �  |  _ | j	 d d  � |  _ t j
 j |  d | j  d t j � �d  S(	   Nt
   client_clsi   i    t   dsnsS   The first argument to %s must be either a Client instance or a DSN, got %r instead.t   clientR   t   level(   t   getR   t   lenR   R   R,   t
   ValueErrort	   __class__t   __name__t   popR   R   t   loggingt   Handlert   __init__t   NOTSET(   t   selfR   t   kwargsR,   t   arg(    (    sG   /opt/alt/python27/lib/python2.7/site-packages/raven/handlers/logging.pyR6   5   s    
c         C@ s    | j  d k p | j  j d � S(   Nt   ravens
   sentry.errorss   raven.(   s
   sentry.errorss   raven.(   R	   R"