
    ch~                        % S r SSKJr  SSKrSSKrSSKJrJr  SrS\	S'   0 r
S\	S	'   \R                  qSS
 jrSS jrSS jrSS jrSS jrg)zLogging module.    )annotationsN)Finalcastz2%(asctime)s %(levelname) -7s %(name)s: %(message)sr   DEFAULT_LOG_MESSAGEzdict[str, logging.Logger]_loggersc                   [        [        5      n[        U [        5      (       a  U R	                  5       n U S[
        R                  1;   a  [
        R                  nOU S[
        R                  1;   a  [
        R                  nOU S[
        R                  1;   a  [
        R                  nO{U S[
        R                  1;   a  [
        R                  nOTU S[
        R                  1;   a  [
        R                  nO-SU  S3nUR                  U5        [        R                  " S5        [        R                  5        H  nUR!                  W5        M     Wqg	)
zSet log level.CRITICALERRORWARNINGINFODEBUGzundefined log level ""   N)
get_logger__name__
isinstancestrupperloggingr	   r
   r   r   r   criticalsysexitr   valuessetLevel_global_log_level)levellogger	log_levelmsglogs        cC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\streamlit/logger.pyset_log_levelr"       s    !F%W--..$$		7GMM*	*MM		9goo.	.OO		67<<(	(LL		7GMM*	*MM	%eWA. Y ! "    c                   [        U S5      (       a%  U R                  [        SU R                  5      5        [        R
                  " 5       U l        SSKJn  UR                  (       a  UR                  S5      nO[        n[        R                  " US9nSUl        U R                  R                  U5        U R                  U R                  5        g)	z0Set up the console formatter for a given logger.streamlit_console_handlerzlogging.Handlerr   )configzlogger.messageFormat)fmtz%s.%03dN)hasattrremoveHandlerr   r%   r   StreamHandler	streamlitr&   _config_options
get_optionr   	Formatterdefault_msec_formatsetFormatter
addHandler)r   r&   message_format	formatters       r!   setup_formatterr4   <   s     v233T"3V5U5UVW'.'<'<'>F$ !  **+AB,!!n5I$-I!
$$11)< f667r#   c                 P    [         R                  5        H  n [        U 5        M     g )N)r   r   r4   r    s    r!   update_formatterr7   V   s      !r#   c                 2    S H  n [        SU  35        M     g)zSet 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   r6   s    r!   init_tornado_logsr<   [   s     4XcU#$ 4r#   c                    U [         ;   a	  [         U    $ U S:X  a  [        R                  " S5      O[        R                  " U 5      nUR                  [        5        SUl        [        U5        U[         U '   U$ )zReturn a logger.

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

Returns
-------
Logger

rootr+   F)r   r   	getLoggerr   r   	propagater4   )namer   s     r!   r   r   g   sl     x~ +/&.+&g>O>OPT>U  OO%&FFHTNMr#   )r   z	str | intreturnNone)r   logging.LoggerrB   rC   )rB   rC   )rA   r   rB   rD   )__doc__
__future__r   r   r   typingr   r   r   __annotations__r   r   r   r"   r4   r7   r<   r    r#   r!   <module>rJ      sS     "  
 Q U Q ')
# ( LL "884
	%r#   