Download Install Tutorial Docs FAQ Tools WikiLicense Team IRC Planet Involvement Shop Book

Ticket #450 (defect)

Opened 3 years ago

Last modified 2 years ago

Add referers and other info in the logs

Status: closed (fixed)

Reported by: lawouach Assigned to: lawouach
Priority: low Milestone: 2.2-final
Component: CherryPy code Keywords:
Cc:

Some people have requested the possibility to add more informations to the logs, such as Referers.

It seems that as long as we keep the first part of each line in the logs as respecting CLF we won't have issues in adding those information.

Change History

01/26/06 09:06:19: Modified by elvelind@gmail.com

it would be nice if it was changed to Combined Log Format instead of CFL. Combined Log Format is CFL + Referer and User-Agent HTTP request header.

01/26/06 11:40:00: Modified by dowski

Could access logging be moved to a filter? If so, the filter could have options like:

access_log_filter.on = True
access_log_filter.format = "common" # or "combined" or "custom" or ...
access_log_filter.file = "/path/to/access.log"

I suppose some clear way of creating custom formats would be needed too.

Just some thoughts ... for now :-)

02/03/06 01:28:19: Modified by elvelind@gmail.com

I think supporting Combined Log Format is more importent than having it in a filter and being able to do custome logs. I'll attach a small patch to make the logs Combined.

Index: cherrypy/_cputil.py
===================================================================
--- cherrypy/_cputil.py (revision 955)
+++ cherrypy/_cputil.py (working copy)
@@ -108,7 +108,7 @@
 def _cp_log_access():
     """ Default method for logging access """
     
-    tmpl = '%(h)s %(l)s %(u)s [%(t)s] "%(r)s" %(s)s %(b)s'
+    tmpl = '%(h)s %(l)s %(u)s [%(t)s] "%(r)s" %(s)s %(b)s "%(f)s" "%(a)s"'
     s = tmpl % {'h': cherrypy.request.remoteHost,
                 'l': '-',
                 'u': getattr(cherrypy.request, "login", None) or "-",
@@ -116,6 +116,8 @@
                 'r': cherrypy.request.requestLine,
                 's': cherrypy.response.status.split(" ", 1)[0],
                 'b': cherrypy.response.headers.get('Content-Length', '') or "-",
+                'f': cherrypy.request.headers.get('referer'),
+                'a': cherrypy.request.headers.get('user-agent'),
                 }
     
     if cherrypy.config.get('server.log_to_screen', True):

03/28/06 12:22:46: Modified by rdelon

  • milestone changed from 2.2-final to 3.0.

03/28/06 12:23:27: Modified by rdelon

  • milestone changed from 3.0 to 2.2-final.

03/29/06 07:48:16: Modified by lawouach

  • status changed from new to closed.
  • resolution set to fixed.

Fixe in [1030]

Thank you to elvelind for the patch

Hosted by WebFaction

Log in as guest/cpguest to create tickets