[Zope] logging for virtual hosts
   
    zope@concision.com
     
    zope@concision.com
       
    10 Nov 2000 20:49:57 -0500
    
    
  
Well, I tried the source hacking approach and seem to have found
success with relatively little pain.
In ZServer/medusa/http_server.py, the "log" method of the class
"http_request" can be modified to report the request hostname which
is readily available via the get_header method in the same class. Here
is my modified "log" method:
    def log (self, bytes):
        user_agent=self.get_header('user-agent')
        if not user_agent: user_agent=''
	referer=self.get_header('referer')
	host=self.get_header('host')
	if not referer: referer=''	
	self.channel.server.logger.log (
	    self.channel.addr[0],
	    ' - - [%s] "%s" %d %d "%s" "%s" %s\n' % (
		self.log_date_string (time.time()),
                self.request,
                self.reply_code,
                bytes,
                referer,
                user_agent,
		host
		)
	    )
Note that this puts the request hostname at the end of the log
entry.