File: //opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/log.pyo
�
��4]c           @   s�   d  Z  d d l Z d d l Z e j d � Z e j e j k rR e j e j � n  d �  Z	 e
 �  Z d �  Z d e
 f d �  �  YZ d e
 f d	 �  �  YZ d d
 � Z d e
 f d �  �  YZ d S(
   s�  Logging control and utilities.
Control of logging for SA can be performed from the regular python logging
module.  The regular dotted module namespace is used, starting at
'sqlalchemy'.  For class-level logging, the class name is appended.
The "echo" keyword parameter, available on SQLA :class:`.Engine`
and :class:`.Pool` objects, corresponds to a logger specific to that
instance only.
i����Nt
   sqlalchemyc         C   s9   t  j t j � } | j t  j d � � |  j | � d  S(   Ns.   %(asctime)s %(levelname)s %(name)s %(message)s(   t   loggingt
   StreamHandlert   syst   stdoutt   setFormattert	   Formattert
   addHandler(   t   loggert   handler(    (    sA   /opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/log.pyt   _add_default_handler!   s    c            s[   t  j |  j d |  j � �  �  f d �  |  _ �  f d �  |  _ �  |  _ t j |  � |  S(   Nt   .c            s   �  j  t j � S(   N(   t   isEnabledForR   t   DEBUG(   t   self(   R   (    sA   /opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/log.pyt   <lambda>.   t    c            s   �  j  t j � S(   N(   R   R   t   INFO(   R   (   R   (    sA   /opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/log.pyR   /   R   (	   R   t	   getLoggert
   __module__t   __name__t   _should_log_debugt   _should_log_infoR   t   _logged_classest   add(   t   cls(    (   R   sA   /opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/log.pyt   class_logger,   s    	
t
   Identifiedc           B   s    e  Z d Z d  �  Z d �  Z RS(   c         C   s   |  j  j t j � S(   N(   R   R   R   R
   (   R   (    (    sA   /opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/log.pyR   8   s    c         C   s   |  j  j t j � S(   N(   R   R   R   R   (   R   (    (    sA   /opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/log.pyR   ;   s    N(   R   R   t   Nonet   logging_nameR   R   (    (    (    sA   /opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/log.pyR   5   s   	t   InstanceLoggerc           B   s�   e  Z d  Z i e j d 6e j e 6e j e 6e j	 d 6Z
 d �  Z d �  Z d �  Z
 d �  Z e Z d �  Z d �  Z d �  Z d	 �  Z d
 �  Z d �  Z RS(
   s  A logger adapter (wrapper) for :class:`.Identified` subclasses.
    This allows multiple instances (e.g. Engine or Pool instances)
    to share a logger, but have its verbosity controlled on a
    per-instance basis.
    The basic functionality is to return a logging level
    which is based on an instance's echo setting.
    Default implementation is:
    'debug' -> logging.DEBUG
    True    -> logging.INFO
    False   -> Effective level of underlying logger (
    logging.WARNING by default)
    None    -> same as False
    t   debugc         C   sR   | |  _  t j | � |  _ |  j | t j k rN |  j j rN t |  j � n  d  S(   N(   t   echoR   R   R   t	   _echo_mapR   t   handlersR
   (   R   R    t   name(    (    sA   /opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/log.pyt   __init__Z   s    	#c         O   s   |  j  t j | | | � d S(   s/   Delegate a debug call to the underlying logger.N(   t   logR   R
   (   R   t   msgt   argst   kwargs(    (    sA   /opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/log.pyR   f   s    c         O   s   |  j  t j | | | � d S(   s/   Delegate an info call to the underlying logger.N(   R%   R   R   (   R   R&