Re: Logging environment variables

Mike Cardwell <[email protected]> Thu, 24 Nov 2005 14:56:49 +0000
Newsgroups gmane.comp.apache.mod-log-sql
Message-ID <20051124145649.GA28895@localhost>
* on the Thu, Nov 24, 2005 at 10:17:38AM +0000, Mike Cardwell wrote:

> I have a setup whereby there is a single virtual host that serves many
> sites. Rewrite rules are used to map a hostname to a path for the
> document root. I set the environment variable VHOST to be a slightly
> modified copy of HTTP_HOST.
> 
> Example:
> 
> If an incoming request comes in for foo.com or anything.foo.com
> or anything.anything.foo.com I want to only log foo.com. The VHOST
> variable is set to the correct value. I can log this to disk with:
> 
> LogFormat "%{VHOST}e %h %l %u %t \"%r\" %>s %b \"%{Referer}i\"
> \"%{User-Agent}i\"" vhost
> CustomLog /var/log/httpd/vhost-access.log vhost
> 
> But how the hell do I get mod_log_sql to use the value of VHOST rather
> than HTTP_HOST for the virtual_host column? I understand this may
> require patching mod_log_sql. if that's the case, can someone give me
> some pointers as I'm not a C programmer.

I've found a solution. In functions.h, in either extract_virtual_host or
extract_server_name depending on if you're using the 'v' or the 'V'
option, you simply change the contents of that subroutine to:

return apr_table_get( r->subprocess_env, "VHOST" );

Now I've got it working I think I'll write a more elegant solution.
That would have taken a C programmer 2 minutes to find and write ;)

Mike

-- 
Digital photo printing: http://www.fotoserve.com/
_______________________________________________
Download the latest version at http://www.outoforder.cc/projects/apache/mod_log_sql/

To unsubscribe send an e-mail to 
mod_log_sql-unsubscribe-7qY7E20V6GW73k+5HYS8LQqVMODqnSLI@public.gmane.org