o
    1 i                     @   sz   d dl Z d dlZd dlZd dlmZ dZdd Zdeee jf fddZ	G d	d
 d
e j
Zdae Zdd Zdd ZdS )    N)UnionZ_ray_timestamp_nsc                  C   s   t jjt ji} | ttt jjj  |  D ]&\}}t	|t j
r?td| d|j d|j  |jD ]	}td|  q5qdS )zCPrint a formatted list of loggers and their handlers for debugging.z  z: disabled=z, propagate=z    N)loggingrootnameupdatedictsortedmanager
loggerDictitems
isinstanceLoggerprintdisabled	propagatehandlers)loggersr   loggerhandler r   \/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/ray/_private/log.py_print_loggers	   s   
r   r   c                 C   s(   t | tr
t| } d| _| j  dS )ztReset a logger, clearing its handlers and enabling propagation.

    Args:
        logger: Logger to be cleared
    TN)r   strr   	getLoggerr   r   clear)r   r   r   r   clear_logger   s   

r   c                       s0   e Zd ZdZ fddZdejfddZ  ZS )PlainRayHandlerzA plain log handler.

    This handler writes to whatever sys.stderr points to at emit-time,
    not at instantiation time. See docs for logging._StderrHandler.
    c                    s2   t    t | _| j| j_tjdd| j_d S )Nz%(message)s)fmt)super__init__r   _StderrHandlerplain_handlerlevel	Formatter	formatter)self	__class__r   r   r   '   s   


zPlainRayHandler.__init__recordc                 C   sV   ddl }t|dr"t|jdr"|jjjj|jjjkr"| j| dS t	j
| | dS )a  Emit the log message.

        If this is a worker, bypass fancy logging and just emit the log record.
        If this is the driver, emit the message using the appropriate console handler.

        Args:
            record: Log record to be emitted
        r   N_privateworker)rayhasattrr)   r*   Zglobal_workermodeZWORKER_MODEr!   emitr   r    )r%   r(   r+   r   r   r   r.   -   s   	

zPlainRayHandler.emit)	__name__
__module____qualname____doc__r   r   	LogRecordr.   __classcell__r   r   r&   r   r       s    r   Fc                     s"   t    fdd} t |  dS )z?Setup log record factory to add _ray_timestamp_ns to LogRecord.c                     s.    | i |}t  }|d |_||jt< |S )Ng    eA)timetime_nscreated__dict__INTERNAL_TIMESTAMP_LOG_KEY)argskwargsr(   ctZold_factoryr   r   record_factoryK   s
   

z1_setup_log_record_factory.<locals>.record_factoryN)r   getLogRecordFactorysetLogRecordFactory)r>   r   r=   r   _setup_log_record_factoryG   s   rA   c                  C   s   t D tr	 W d   dS datd} t }||  td}|tj |	| d|_
td}|tj t  W d   dS 1 sIw   Y  dS )z/Generate the default Ray logging configuration.NTz@%(asctime)s	%(levelname)s %(filename)s:%(lineno)s -- %(message)sr+   Fz	ray.rllib)logging_config_locklogger_initializedr   r#   r   setFormatterr   setLevelINFO
addHandlerr   WARNrA   )Zplain_formatterZdefault_handlerZ
ray_loggerZrllib_loggerr   r   r   generate_logging_config[   s$   



"rI   )r   	threadingr5   typingr   r9   r   r   r   r   StreamHandlerr   rC   LockrB   rA   rI   r   r   r   r   <module>   s    #