I did not get any responses so I consulted the sources
of both apache and mod_perl. It turned out that apache uses 
the_request method to get data for the log entries. 
The eagle book documented this the_request as
a read-only method. Fortunately in the recent versions of mod_perl
this is not the case any more and one can set a new value
via this method.

So modifying url in web log via PerlLogHandler is indeed possible.
Just modify the_request value instead of the uri value.

HTH for other people.

Thanks

Richard

On Sat, May 26, 2001 at 09:23:17AM -0400, Richard Chen wrote:
> Is it possible to modify the logged url in the usual
> modperl weblog via PerlLogHandler? I have tried this and
> it does not seem to work:
> 
> $ cat Apache/MyLog.pm
> package Apache::MyLog;
> use Apache::Constants qw(:common);
> sub handler {
>         my $r = shift;
>         my $uri=$r->uri;
>       return DECLINED if ($r->filename !~ /foobar/);
>         print STDERR "in MyLog handler, \$uri=$uri, modify it now\n";
>         $r->uri('/foobar_changed');
>         return OK;
> }
> 1;
> 
> When this is installed like this:
> 
> <Location /perl>
> PerlLogHandler Apache::MyLog
> </Location>
> 
> I can see the debugging message in error_log but the url logged 
> in the weblog is still the same as before.
> 
> Thanks for any info.
> 
> Richard

Reply via email to