apache - Getting the request object outside a mod_perl handler -


i want log apache log file subroutine called mod_perl handler doesn't have request object ($r) .

sub handler {     ($r) = shift;     ...     common::subroutine_that_also_logs();     ... }  package common; sub subroutine_that_also_logs {     ...     # $r->log->info('cannot this')     ... } 

while using print stderr or warn works want use apache2::log additional request information in log :-

[fri may 30 16:12:37 2014] [info] [client 123.123.123.123] cannot 

instead of

cannot 

i want avoid global init in handler mean updating few hundred handlers :-

my $globalr; sub handler {     $globalr = shift;     ...     common::subroutine_that_also_logs(); }  package common; sub subroutine_that_also_logs {     ...     $globalr->log->info('can try this')     ... } 

i have set single perlfixuphandler initializing $globalr wonder if there better way or if $r available directly other means.

you can use apache2::requestutil.

package common; use apache2::requestrec; use apache2::requestutil;  sub subroutine_that_also_logs {     $r = apache2::requestutil->request;     # process want using $r } 

if phase perlfixuphandler, $r has whole request information e.g. mime-type , on.

if use method, have write perloptions +globalrequest on httpd.conf apache httpd config file.

please see perldoc apache2::requestutil detail.


Comments

Popular posts from this blog

commonjs - How to write a typescript definition file for a node module that exports a function? -

openid - Okta: Failed to get authorization code through API call -

ios - Change Storyboard View using Seague -