o
    پiZ                     @  s   d dl mZ d dl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	 d dl
mZmZmZ d dlmZ d$ddZd%ddZd&ddZd'ddZd(ddZd)d"d#ZdS )*    )annotationsN)datetime)TimedRotatingFileHandler)ListOptionalUniontargetsOptional[List[str]]name_prefixstrreturnList[logging.Logger]c                   s    | st  gS  fdd| D S )Nc                   s   g | ]}t | qS  )_create_log_target).0tr
   r   N/home/ubuntu/.local/lib/python3.10/site-packages/sglang/srt/utils/log_utils.py
<listcomp>   s    z&create_log_targets.<locals>.<listcomp>)_create_log_target_stdout)r   r
   r   r   r   create_log_targets   s   
r   targetlogging.Loggerc                 C  s   |   dkr
t|S t| |S )Nstdout)lowerr   _create_log_target_file)r   r
   r   r   r   r      s   
r   c                 C  s   t |  dttjS )Nz.stdout)_create_logger_with_handlerloggingStreamHandlersysr   r   r   r   r   r      s   r   	directoryc                 C  st   t j| dd t }t rt nd}t j| | d| d}t	|dddd}t
| d	|  d
| d| |S )NT)exist_okr   _z.logHzutf-8)whenbackupCountencodingz.file..)osmakedirssocketgethostnamedistis_initializedget_rankpathjoinr   r   )r    r
   hostnamerankfilenamehandlerr   r   r   r   #   s   r   namer4   logging.Handlerc                 C  s@   t | }|t j d|_|js|t d || |S )NFz%(message)s)	r   	getLoggersetLevelINFO	propagatehandlerssetFormatter	Formatter
addHandler)r5   r4   loggerr   r   r   r   0   s   

r   loggers+Union[logging.Logger, List[logging.Logger]]eventdatadictNonec                 C  sL   t   |d|}tj|dd}t| ts| g} | D ]}|| qd S )N)	timestamprB   F)ensure_ascii)r   now	isoformatjsondumps
isinstancelistinfo)r@   rB   rC   log_datamsgr?   r   r   r   log_json:   s   

rQ   )r   r	   r
   r   r   r   )r   r   r
   r   r   r   )r
   r   r   r   )r    r   r
   r   r   r   )r5   r   r4   r6   r   r   )r@   rA   rB   r   rC   rD   r   rE   )
__future__r   rJ   r   r(   r*   r   r   logging.handlersr   typingr   r   r   torch.distributeddistributedr,   r   r   r   r   r   rQ   r   r   r   r   <module>   s     





