o
    ig                     @   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 r|j}n|dk r#|j}n|j}d|  }t||j|j	|j
t|dd}d}|dkrO|jd	d
|d< |d7 }|dkr|dkri }	dD ]}
|
|jv ri|j|
 |	|
< q[|rv|dt|	dd n|tjt|	dd |r|dt|dd n
||jdi | 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methodipurirequest_timez1{status} {method} {uri} ({ip}) {request_time:f}msRefererNonerefererz referer={referer}i  )HostAcceptr
   z
User-Agent )props)extra   )indentN )
get_statusrequestdebuginfowarningerrorr	   dictr   	remote_ipr   floatheadersgetjsondumpsformatr   )handlerloglog_jsonr   r   
log_methodr	   nsmsgr   headerr   r   G/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/notebook/log.pylog_request   sD   

r+   )r    tornado.logr   prometheus.log_functionsr   r+   r   r   r   r*   <module>   s   