o
    à¥µiš  ã                   @   s^   d dl mZ d dlZd dlmZ i Ze d¡Zdej	dfdee
 dede
fdd	„Zd
d„ ZdS )é    N)ÚOptionalz4%(asctime)s - %(name)s - %(levelname)s - %(message)sÚwÚlog_fileÚ	log_levelÚ	file_modec                 C   s*  t  d¡d }t |¡}d|_|tv r&t|| ||ƒ |j|kr$| |¡ |S d}d}t	 
d¡dur?ddlm}m} |ƒ }|ƒ }|rU|jjD ]}	t|	ƒtju rT|	 tj¡ qEt ¡ }
|
g}|rm| durmt | |¡}| |¡ |D ]}	|	 t¡ |	 |¡ | |	¡ qo|r‰| |¡ n| tj¡ dt|< |S )a3   Get logging logger

    Args:
        log_file: Log filename, if specified, file handler will be added to
            logger
        log_level: Logging level.
        file_mode: Specifies the mode to open the file, if filename is
            specified (if filemode is unspecified, it defaults to 'w').
    Ú.r   FTÚtorchN)Úis_distÚ	is_master)Ú__name__ÚsplitÚloggingÚ	getLoggerÚ	propagateÚinit_loggersÚadd_file_handler_if_neededÚlevelÚsetLevelÚiutilÚ	find_specÚmodelscope.utils.torch_utilsr	   r
   ÚrootÚhandlersÚtypeÚStreamHandlerÚERRORÚFileHandlerÚappendÚsetFormatterÚ	formatterÚ
addHandler)r   r   r   Úlogger_nameÚloggerÚ
torch_distÚ
is_worker0r	   r
   ÚhandlerÚstream_handlerr   Úfile_handler© r(   úK/home/ubuntu/.local/lib/python3.10/site-packages/modelscope/utils/logger.pyÚ
get_logger   sB   


	€


r*   c                 C   s†   | j D ]}t|tjƒr d S qt d¡d ur ddlm} |ƒ }nd}|r?|d urAt ||¡}| t	¡ | 
|¡ |  |¡ d S d S d S )Nr   r   )r
   T)r   Ú
isinstancer   r   r   r   r   r
   r   r   r   r    )r"   r   r   r   r%   r
   r$   r'   r(   r(   r)   r   L   s   
ÿ

ür   )Úimportlib.utilÚutilr   r   Útypingr   r   Ú	Formatterr   ÚINFOÚstrÚintr*   r   r(   r(   r(   r)   Ú<module>   s    ÿþÿ
þ?