
    /hI	                        d dl mZ d dlZd dlZd dlZd dlmZ ddlm	Z	 ej
        rddlmZ edd	            ZddZ ej        e          Ze                     ej        d                     ddZdS )    )annotationsN)
LocalProxy   )request)Appreturnt.TextIOc                 L    t           rt           j        d         S t          j        S )a  Find the most appropriate error stream for the application. If a request
    is active, log to ``wsgi.errors``, otherwise use ``sys.stderr``.

    If you configure your own :class:`logging.StreamHandler`, you may want to
    use this for the stream. If you are using file or dict configuration and
    can't import this directly, you can refer to it as
    ``ext://flask.logging.wsgi_errors_stream``.
    zwsgi.errors)r   environsysstderr     @/var/www/html/venv/lib/python3.11/site-packages/flask/logging.pywsgi_errors_streamr      s!      .}--:r   loggerlogging.Loggerboolc                    |                                  | }|r3t          fd|j        D                       rdS |j        sn	|j        }|3dS )zCheck if there is a handler in the logging chain that will handle the
    given logger's :meth:`effective level <~logging.Logger.getEffectiveLevel>`.
    c              3  .   K   | ]}|j         k    V  d S )N)level).0handlerr   s     r   	<genexpr>z$has_level_handler.<locals>.<genexpr>'   s*      FF'w}%FFFFFFr   TF)getEffectiveLevelanyhandlers	propagateparent)r   currentr   s     @r   has_level_handlerr!      sv     $$&&EG
 !FFFFW5EFFFFF 	4  	.  ! 5r   z6[%(asctime)s] %(levelname)s in %(module)s: %(message)sappr   c                    t          j        | j                  }| j        r&|j        s|                    t           j                   t          |          s|                    t                     |S )a  Get the Flask app's logger and configure it if needed.

    The logger name will be the same as
    :attr:`app.import_name <flask.Flask.name>`.

    When :attr:`~flask.Flask.debug` is enabled, set the logger level to
    :data:`logging.DEBUG` if it is not set.

    If there is no handler for the logger's effective level, add a
    :class:`~logging.StreamHandler` for
    :func:`~flask.logging.wsgi_errors_stream` with a basic format.
    )
logging	getLoggernamedebugr   setLevelDEBUGr!   
addHandlerdefault_handler)r"   r   s     r   create_loggerr,   :   sf     sx((F
y ' '&&&V$$ +/***Mr   )r   r	   )r   r   r   r   )r"   r   r   r   )
__future__r   r$   r   typingtwerkzeug.localr   globalsr   TYPE_CHECKING
sansio.appr   r   r!   StreamHandlerr+   setFormatter	Formatterr,   r   r   r   <module>r7      s   " " " " " "  



     % % % % % %      ?         * (''(:;;   GNOO  
     r   