o
    ?Zc                     @   s   d Z ddlZddlZddlZddlZddlmZ ddlmZm	Z	 ddl
mZ ddlmZ dZeejZeej ed	ej eejd	 ejd
Zdd Zdd Zdd ZdddZG dd dZG dd deZdddZdS )zLogging Utilities.    N)WatchedFileHandler   )	safe_reprsafe_strmaybe_evaluate)cached_property)LogMixin
LOG_LEVELSget_loglevelsetup_loggingFATALDISABLE_TRACEBACKSc                 C   s,   t | tr
t| } | js| t  | S )zGet logger by name.)
isinstancestrlogging	getLoggerhandlers
addHandlerNullHandler)logger r   ?/var/www/chikooza/env/lib/python3.10/site-packages/kombu/log.py
get_logger   s
   

r   c                 C   s   t | tr	t|  S | S )zGet loglevel by name.)r   r   r
   )levelr   r   r   r      s   
r   c                 c   sH    |  d}t|dd  D ]\}}|r||d  sd n|d V  qd S )N%r   r   )split	enumerate)fmtpartsier   r   r   naive_format_parts&   s
   
 r"   c                 c   sR    |st tdn|}tt| D ]\}}||}|r!||| n|| V  qd S )N)sr)r   r   r   r"   get)r   argsfiltersindextypefiltr   r   r   safeify_format,   s   
r+   c                   @   sx   e Zd ZdZdd Zdd Zdd Zdd	 Zd
d Zdd Z	dd Z
dd Zdd Zdd Zedd Zedd ZdS )r	   z.Mixin that adds severity methods to any class.c                 O      | j tjg|R i |S N)logr   DEBUGselfr&   kwargsr   r   r   debug6      zLogMixin.debugc                 O   r,   r-   )r.   r   INFOr0   r   r   r   info9   r4   zLogMixin.infoc                 O   r,   r-   )r.   r   WARNr0   r   r   r   warn<   r4   zLogMixin.warnc                 O   &   | dd | jtjg|R i |S Nexc_infoT)
setdefaultr.   r   ERRORr0   r   r   r   error?      zLogMixin.errorc                 O   r9   r:   )r<   r.   r   CRITICALr0   r   r   r   criticalC   r?   zLogMixin.criticalc                 C   s   | j  d| S )Nz - )logger_name)r1   textr   r   r   annotateG   s   zLogMixin.annotatec              	   O   s   t r|dd  | j|rZ| jj}t|dkrFt|d trFdd |dd  D }||| |d 	ddgt
t|d |R i |S | jj|| dtt|fi |S d S )	Nr;   r   r   c                 S   s   g | ]}t |qS r   r   ).0argr   r   r   
<listcomp>P   s    z LogMixin.log.<locals>.<listcomp>z%rz%s )r   popr   isEnabledForr.   lenr   r   rD   replacelistr+   joinmapr   )r1   severityr&   r2   r.   expandr   r   r   r.   J   s&   zLogMixin.logc                 C   s
   t | jS r-   )r   rB   r1   r   r   r   r   Y   s   
zLogMixin.get_loggerc                 C   s   | j | |S r-   )r   rJ   r   r1   r   r   r   r   is_enabled_for\   s   zLogMixin.is_enabled_forc                 C   s   t |tjs
t| S |S r-   )r   numbersIntegralr
   rS   r   r   r   r   _   s   zLogMixin.get_loglevelc                 C   s   |   S r-   )r   rR   r   r   r   r   d      zLogMixin.loggerc                 C   s   | j jS r-   )	__class____name__rR   r   r   r   rB   h   rW   zLogMixin.logger_nameN)rY   
__module____qualname____doc__r3   r6   r8   r>   rA   rD   r.   r   rT   r   r   r   propertyrB   r   r   r   r   r	   3   s     
r	   c                       s2   e Zd ZdddZ fddZedd Z  ZS )	LogNc                 C   s   || _ || _d S r-   )_logger_name_logger)r1   namer   r   r   r   __init__o   s   
zLog.__init__c                    s   | j r| j S t  S r-   )r`   superr   rR   rX   r   r   r   s   s   
zLog.get_loggerc                 C   s   | j S r-   )r_   rR   r   r   r   rB   x   s   zLog.logger_namer-   )rY   rZ   r[   rb   r   r]   rB   __classcell__r   r   rd   r   r^   m   s
    
r^   c                 C   s^   t  }t| pd} |r|ntj}|js-t|drt |}nt|}|	| |
|  |S )zSetup logging.r=   write)r   r   r   sys
__stderr__r   hasattrStreamHandlerr   r   setLevel)loglevellogfiler   handlerr   r   r   r   }   s   


r   r-   )NN) r\   r   rU   osrg   logging.handlersr   utils.encodingr   r   utils.functionalr   utils.objectsr   __all__dict_nameToLevelr
   update_levelToNamer<   r   environr%   r   r   r   r"   r+   r	   r^   r   r   r   r   r   <module>   s,    
	
: