o
    RDi                     @  sX   d dl mZ d dlZd dlZd dlmZ d dlmZ 	ddddZG dd
 d
ej	Z
dS )    )annotationsN)Mapping)AnynamestrextraMapping[str, object] | Nonereturn
SnowLoggerc                 C  s   t | }t||S N)logging	getLoggerr
   )r   r   logger r   Y/var/www/Datamplify/venv/lib/python3.10/site-packages/snowflake/connector/snow_logging.pygetSnowLogger	   s   

r   c                   @  s   e Zd ZdZ		d%d&ddZ		d%d&ddZ		d%d&ddZ		d%d&ddZ		d%d&ddZ		d%ddd'ddZ			d%d&ddZ
e
Z			d(d)d#d$ZdS )*r
   zSnowflake Python logger wrapper of the built-in Python logger.

    This logger wrapper supports user-provided logging info about
    file name, function name and line number. This wrapper can be
    used in Cython code (.pyx).
    Nmsgr   	path_name
str | None	func_nameargsr   kwargsr	   Nonec                 O  $   | j tj|||g|R i | d S r   )logr   DEBUGselfr   r   r   r   r   r   r   r   debug      $zSnowLogger.debugc                 O  r   r   )r   r   INFOr   r   r   r   info#   r   zSnowLogger.infoc                 O  r   r   )r   r   WARNINGr   r   r   r   warning-   r   zSnowLogger.warningc                 O  s0   t jdtdd | j|||g|R i | d S )Nz6The 'warn' method is deprecated, use 'warning' instead   )
stacklevel)warningswarnDeprecationWarningr#   r   r   r   r   r'   7   s    zSnowLogger.warnc                 O  r   r   )r   r   ERRORr   r   r   r   errorF   r   zSnowLogger.errorT)exc_infor+   boolc                O  s$   | j |||g|R d|i| dS )zCConvenience method for logging an ERROR with exception information.r+   N)r*   )r   r   r   r   r+   r   r   r   r   r   	exceptionP   s   $
zSnowLogger.exceptionc                 O  r   r   )r   r   CRITICALr   r   r   r   critical\   r   zSnowLogger.criticalr   levelintline_numc           	   	   O  sr   |sd}|sd}t |tstjrtddS | j|r7| jj| jj|||||d|fi |}| j	| dS dS )al  Generalized log method of SnowLogger wrapper.

        Args:
            level: Logging level.
            msg: Logging message.
            path_name: Absolute or relative path of the file where the logger gets called.
            func_name: Function inside which the logger gets called.
            line_num: Line number at which the logger gets called.
        zpath_name not providedzfunc_name not providedzlevel must be an integerN)

isinstancer1   r   raiseExceptions	TypeErrorr   isEnabledFor
makeRecordr   handle)	r   r0   r   r   r   r2   r   r   recordr   r   r   r   h   s.   
	zSnowLogger.log)NN)r   r   r   r   r   r   r   r   r   r   r	   r   )r   r   r   r   r   r   r   r   r+   r,   r   r   r	   r   )NNr   )r0   r1   r   r   r   r   r   r   r2   r1   r   r   r   r   r	   r   )__name__
__module____qualname____doc__r   r!   r#   r'   r*   r-   r/   fatalr   r   r   r   r   r
      s<    

r   )r   r   r   r   r	   r
   )
__future__r   r   r&   collections.abcr   typingr   r   LoggerAdapterr
   r   r   r   r   <module>   s    