U
    H$xeW  ã                   @   sF   d dl Z d dlZdZG dd„ dejƒZG dd„ dejƒZdd	d
„ZdS )é    Né   c                   @   s   e Zd Zdd„ ZdS )ÚCrashingHandlerc                 C   s2   |   |¡}| j}| |¡ | | j¡ |  ¡  dS )z>Unlike the method it overrides, this will not catch exceptionsN)ÚformatÚstreamÚwriteÚ
terminatorÚflush)ÚselfÚrecordÚmsgr   © r   ú+lib/python3.8/site-packages/cutadapt/log.pyÚemit
   s
    

zCrashingHandler.emitN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   	   s   r   c                       s    e Zd ZdZ‡ fdd„Z‡  ZS )ÚNiceFormatterzš
    Do not prefix "INFO:" to info-level log messages (but do it for all other
    levels).

    Based on http://stackoverflow.com/a/9218261/715090 .
    c                    s0   |j tjtfkr$|j› d|j› |_tƒ  |¡S )Nz: )ZlevelnoÚloggingÚINFOÚREPORTZ	levelnamer   Úsuperr   )r	   r
   ©Ú	__class__r   r   r      s    zNiceFormatter.format)r   r   r   Ú__doc__r   Ú__classcell__r   r   r   r   r      s   r   TFc                 C   sz   t  td¡ t|rtjntjƒ}| tƒ ¡ |dkr<t j	}n|rHt j
}n|rRt}nt j}| |¡ |  |¡ |  |¡ dS )z4
    Attach handler to the global logger object
    r   r   N)r   ZaddLevelNamer   r   ÚsysÚstderrÚstdoutZsetFormatterr   ÚDEBUGZERRORr   ZsetLevelZ
addHandler)ZloggerZlog_to_stderrZminimalÚquietÚdebugZstream_handlerÚlevelr   r   r   Úsetup_logging!   s    

r"   )TFFr   )r   r   r   ZStreamHandlerr   Z	Formatterr   r"   r   r   r   r   Ú<module>   s
   
