o
    沪g                     @  s   U d Z ddlmZ ddlZddlZddlmZ dZded< i Z	ded	< ej
adddZdddZdddZdddZdddZdS ) zLogging module.    )annotationsN)Finalz2%(asctime)s %(levelname) -7s %(name)s: %(message)sr   DEFAULT_LOG_MESSAGEzdict[str, logging.Logger]_loggerslevel	str | intreturnNonec                 C  s   t t}t| tr|  } | dks| tjkrtj}nB| dks#| tjkr'tj}n5| dks0| tjkr4tj}n(| dks=| tj	krAtj	}n| dksJ| tj
krNtj
}nd|  }|| td t D ]}|| q`|adS )	zSet log level.CRITICALERRORWARNINGINFODEBUGzundefined log level "%s"   N)
get_logger__name__
isinstancestrupperloggingr
   r   r   r   r   criticalsysexitr   valuessetLevel_global_log_level)r   logger	log_levelmsglog r    L/var/www/html/chatdoc2/venv/lib/python3.10/site-packages/streamlit/logger.pyset_log_level    s&   


r"   r   logging.Loggerc                 C  sp   t | dr| | j t | _ddlm} |jr|d}nt	}tj
|d}d|_| j| | | j dS )z0Set up the console formatter for a given logger.streamlit_console_handlerr   )configzlogger.messageFormat)fmtz%s.%03dN)hasattrremoveHandlerr$   r   StreamHandler	streamlitr%   _config_options
get_optionr   	Formatterdefault_msec_formatsetFormatter
addHandler)r   r%   message_format	formatterr    r    r!   setup_formatter<   s   

r3   c                  C  s   t  D ]} t|  qd S )N)r   r   r3   r   r    r    r!   update_formatterV   s   
r5   c                  C  s   dD ]	} t d|   qdS )zSet Tornado log levels.

    This function does not import any Tornado code, so it's safe to call even
    when Server is not running.
    )accessapplicationgeneralztornado.N)r   r4   r    r    r!   init_tornado_logs[   s   r9   namer   c                 C  sV   | t  v r
t |  S | dkrtd}nt| }|t d|_t| |t | < |S )zReturn a logger.

    Parameters
    ----------
    name : str
        The name of the logger to use. You should just pass in __name__.

    Returns
    -------
    Logger

    rootr*   F)r   keysr   	getLoggerr   r   	propagater3   )r:   r   r    r    r!   r   g   s   

r   )r   r   r   r	   )r   r#   r   r	   )r   r	   )r:   r   r   r#   )__doc__
__future__r   r   r   typingr   r   __annotations__r   r   r   r"   r3   r5   r9   r   r    r    r    r!   <module>   s   



