U
    Edg                     @   s2   d dl Z d dlmZ ddlmZ edfddZdS )    N)
access_log   )prometheus_log_methodFc                 C   s<  |   }| j}|dk s|dkr&|j}n&|dk r6|j}n|dk rF|j}n|j}d|  }t||j|j	|j
t|dd}d}|dkr|jd	d
|d< |d7 }|dkr|dkri }	dD ]}
|
|jkr|j|
 |	|
< q|r|dt|	dd n|tjt|	dd |r |dt|dd n||jf | t|  dS )a  log a bit more information about each request than tornado's default
    
    - move static file get success to debug-level (reduces noise)
    - get proxied IP instead of proxy IP
    - log referer for redirect and failed requests
    - log user-agent for failed requests
    i,  i0  i  i  g     @@z.2f)statusmethodZipurirequest_timez1{status} {method} {uri} ({ip}) {request_time:f}msRefererNoneZrefererz referer={referer}i  )ZHostZAcceptr	   z
User-Agent )Zprops)Zextra   )indentN)Z
get_statusrequestdebuginfoZwarningerrorr   dictr   Z	remote_ipr   floatheadersgetjsondumpsformatr   )ZhandlerlogZlog_jsonr   r   Z
log_methodr   nsmsgr   header r   +lib/python3.8/site-packages/notebook/log.pylog_request   sB    

r   )r   Ztornado.logr   Zprometheus.log_functionsr   r   r   r   r   r   <module>   s   