
    Ibg                     0    d dl Z d dlmZ ddlmZ edfdZy)    N)
access_log   )prometheus_log_methodFc           
         | j                         }| j                  }|dk  s|dk(  r|j                  }n0|dk  r|j                  }n|dk  r|j                  }n|j
                  }d|j                         z  }t        ||j                  |j                  |j                  t        |d            }d}|dk\  r$|j                  j                  d	d
      |d<   |dz  }|dk\  rl|dk7  rgi }	dD ]#  }
|
|j                  v s|j                  |
   |	|
<   % |r |dt        |	             n& |t        j                  t        |	      d             |r |dt        |             n | |j                   di |       t#        |        y)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    headers              ./usr/lib/python3/dist-packages/notebook/log.pylog_requestr-      sj    !FooG|v}YY
	#XX
	#[[
YY
G0022L	~~KKl3/1
B >C}++Iv>9##}3A 	:F(")//&"9	: rG!45tzz$w-:;2T^,:3::##$'"    )r"   tornado.logr   prometheus.log_functionsr   r-   r   r.   r,   <module>r1      s     " ; (% /#r.   