
    %e                         U d Z ddlZddlZddlmZmZ ddlmZ dZee	d<   i Z
eeej        f         e	d<   ej        adeeef         d	dfd
Zdej        d	dfdZddZddZded	ej        fdZdS )zLogging module.    N)DictUnion)Finalz2%(asctime)s %(levelname) -7s %(name)s: %(message)sDEFAULT_LOG_MESSAGE_loggerslevelreturnc                    t          t                    }t          | t                    r|                                 } | dk    s| t
          j        k    rt
          j        }n| dk    s| t
          j        k    rt
          j        }n| dk    s| t
          j        k    rt
          j        }nt| dk    s| t
          j	        k    rt
          j	        }nQ| dk    s| t
          j
        k    rt
          j
        }n.d| z  }|                    |           t          j        d           t                                          D ]}|                    |           |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logs        0lib/python3.11/site-packages/streamlit/logger.pyset_log_levelr"       s3   !!F% 
ew'777$			'		Ugm33M			)		u77O			&EW\11L			'		Ugm33M		(50      Y "    r   c                 ~   t          | d          r|                     | j                   t          j                    | _        ddlm} |j        r|                    d          }nt          }t          j
        |          }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	formatters       r!   setup_formatterr4   <   s     v233 ?V=>>>'.'<'>'>F$ !      -  **+ABB,!n555I$-I!
$11)<<< f677777r#   c                  \    t                                           D ]} t          |            d S )N)r   r   r4   r    s    r!   update_formatterr7   V   s6         r#   c                  4    dD ]} t          d|             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   r6   s    r!   init_tornado_logsr<   [   s7     4 % %#c##$$$$% %r#   namec                 (   | t                                           v rt           |          S | dk    rt          j        d          }nt          j        |           }|                    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   	propagater4   )r=   r   s     r!   r   r   g   s     x}}~v~~";//"4((
OO%&&&FFHTNMr#   )r	   N)__doc__r   r   typingr   r   typing_extensionsr   r   __annotations__r   r   Loggerr   r   intr"   r4   r7   r<   r    r#   r!   <module>rJ      s)       



         # # # # # #T U T T T ')$sGN"
# ( ( ( L "sCx "T " " " "88GN 8t 8 8 8 84   
	% 	% 	% 	%S W^      r#   