a
    *h                     @   sb   d dl Z d dlZd dlmZ d dlmZ d dlmZ e Z	e
ejdddZe
ddd	d
ZdS )    N)TimedRotatingFileHandler)Path)Optional)log_filenamereturnc                    s   t | }|j |j|jtjjrDtjjd d  D ]}tj| q2tjdddd}t	| ddddd	d	t
d
d
d
d}d|_ fdd|_|| t| ttj tS )Nzf%(asctime)s - [%(levelname)s] - %(threadName)s - %(filename)s:%(funcName)s{%(lineno)d} --> %(message)sz%Y-%m-%d %H:%M:%S%)ZfmtZdatefmtZstyleZmidnight      zutf-8Fr   )filenameZwhenintervalZbackupCountencodingZdelayZutcZatTime%Y%m%dc                    s"      dt j  d  S )N-r   )datetimeZnowstrftime)nameZlog_filename_dirZlog_filename_extZlog_filename_name #/var/aqua_controller/core/logger.py<lambda>3       zinit_logger.<locals>.<lambda>)r   parentZstemsuffixloggingroothandlersZremoveHandlerZ	Formatterr   r   timeZnamerZsetFormatterloggerZ
addHandlersetLevelINFO)r   Zlog_filename_pathZhandlerZlogging_formatterZlogging_handlerr   r   r   init_logger   s8    


r    )levelr   c                 C   s   |   } |  } | dkr&ttj nj| dkr<ttj nT| dkrRttj n>| dkrhttj n(| dkr~ttj	 nt
d|  d d S )NDEBUGr   WARNINGERRORCRITICALu>   неизвестный уровень логирования: uN   . Уровень логирования остается неизменным.)stripupperr   r   r   r"   r   r#   r$   r%   Zwarning)r!   r   r   r   set_level_loggerA   s    r(   )r   r   Zlogging.handlersr   pathlibr   typingr   Z	getLoggerr   strZLoggerr    r(   r   r   r   r   <module>   s   /