
    g+                     v    d dl Z d dlmZ d dlmZmZmZmZmZm	Z	 d dl
mZ dddddZd	ed
efdZ G d d      Zy)    N)Any)ASGI3ApplicationASGIReceiveCallableASGIReceiveEventASGISendCallableASGISendEventWWWScope)TRACE_LOG_LEVELz<{length} bytes>z<{length} chars>z<...>)bodybytestextheadersmessagereturnc                     | j                         }t        j                         D ]@  }| j                  |      | |   }t        |   j	                  t        |            }|||<   B |S )zi
    Return an ASGI message, with any body-type content omitted and replaced
    with a placeholder.
    )length)copyPLACEHOLDER_FORMATkeysgetformatlen)r   new_messageattrcontentplaceholders        V/var/www/openai/venv/lib/python3.12/site-packages/uvicorn/middleware/message_logger.pymessage_with_placeholdersr      sh    
 ,,.K"'');;t(dmG,T299W9NK +K	 *
     c                   ,    e Zd ZddZ	 	 	 	 	 	 	 	 ddZy)MessageLoggerMiddlewarec                      d _         | _        t        j                  d       _        dt
        dt
        dt
        dd f fd}| j                  _        y )Nr   zuvicorn.asgir   argskwargsr   c                 P     j                   j                  t        | g|i | y )N)loggerlogr
   )r   r#   r$   selfs      r   tracez/MessageLoggerMiddleware.__init__.<locals>.trace*   s!    DKKOOOWFtFvFr   )task_counterapplogging	getLoggerr&   r   r)   )r(   r+   r)   s   `  r   __init__z MessageLoggerMiddleware.__init__%   sX    ''7	G3 	Gs 	Gc 	Gd 	G "r   Nc                    
K    xj                   dz  c_          j                   |j                  d      }|rd|d   |d   fz  nd
d
 fd}d
 fd}t        |      }d} j                  j	                  |
|       	  j                  |||       d {    d	} j                  j	                  |
       y 7 $# t        $ r'}	d
} j                  j	                  |
       |	d d }	~	ww xY ww)N   clientz%s:%d - ASGIr   ASGIc                     K            d {   } t        |       }d}j                  j                  ||       | S 7 1w)Nz%s [%d] Receive %sr   r&   r)   )r   logged_messagelog_textprefixreceiver(   r*   s      r   inner_receivez7MessageLoggerMiddleware.__call__.<locals>.inner_receive;   sF     #IoG6w?N+HKK&, N &s   AA 2Ac                    K   t        |       }d}j                  j                  ||        |        d {    y 7 w)Nz%s [%d] Send %sr4   )r   r5   r6   r7   r(   sendr*   s      r   
inner_sendz4MessageLoggerMiddleware.__call__.<locals>.inner_sendD   s@     6w?N(HKK&, w-s   7AA Az%s [%d] Started scope=%sz%s [%d] Completedz%s [%d] Raised exception)r   r   )r   r   r   N)r*   r   r   r&   r)   r+   BaseException)r(   scoper8   r;   r1   r9   r<   logged_scoper6   excr7   r*   s   ` ``      @@r   __call__z MessageLoggerMiddleware.__call__/   s      	Q((8$<B6!9fQi"88	 		  	  17-(FL,G	>((5-<<< +HKKh= = 	 1HKKh=4	 s<   BC9	C C C $ C9C 	C6"C11C66C9)r+   r   )r>   r	   r8   r   r;   r   r   N)__name__
__module____qualname__r.   rA    r   r   r!   r!   $   s2    "(>(> '(> !	(>
 
(>r   r!   )r,   typingr   uvicorn._typesr   r   r   r   r   r	   uvicorn.loggingr
   r   r   r!   rE   r   r   <module>rI      sM       , 	 s s 3> 3>r   