U
    <1_                     @   sl   d Z dZdZdZdZdZddlZG dd	 d	Ze Zej	Z	ej
Z
ejZejZejZejZd
d Zdd ZdS )z,A simple log mechanism styled after PEP 282.                   Nc                   @   sP   e Zd Zef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S )Logc                 C   s
   || _ d S N)	threshold)selfr	    r   #/usr/lib/python3.8/distutils/log.py__init__   s    zLog.__init__c                 C   s   |t ttttfkr"tdt| || jkr|r8|| }|tttfkrNtj	}ntj
}z|d|  W n: tk
r   |j}||d|}|d|  Y nX |  d S )Nz%s wrong log levelz%s
backslashreplace)DEBUGINFOWARNERRORFATAL
ValueErrorstrr	   sysstderrstdoutwriteUnicodeEncodeErrorencodingencodedecodeflush)r
   levelmsgargsstreamr   r   r   r   _log   s    
zLog._logc                 G   s   |  ||| d S r   )r#   )r
   r   r    r!   r   r   r   log'   s    zLog.logc                 G   s   |  t|| d S r   )r#   r   r
   r    r!   r   r   r   debug*   s    z	Log.debugc                 G   s   |  t|| d S r   )r#   r   r%   r   r   r   info-   s    zLog.infoc                 G   s   |  t|| d S r   )r#   r   r%   r   r   r   warn0   s    zLog.warnc                 G   s   |  t|| d S r   )r#   r   r%   r   r   r   error3   s    z	Log.errorc                 G   s   |  t|| d S r   )r#   r   r%   r   r   r   fatal6   s    z	Log.fatalN)__name__
__module____qualname__r   r   r#   r$   r&   r'   r(   r)   r*   r   r   r   r   r      s   r   c                 C   s   t j}| t _|S r   )_global_logr	   )r   oldr   r   r   set_thresholdA   s    r0   c                 C   s8   | dkrt t n"| dkr$t t n| dkr4t t d S )Nr   r   r   )r0   r   r   r   )vr   r   r   set_verbosityG   s    

r2   )__doc__r   r   r   r   r   r   r   r.   r$   r&   r'   r(   r)   r*   r0   r2   r   r   r   r   <module>   s    +