Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: ModPerl: ModPerl

Registry and CGI::Carp

 

 

ModPerl modperl RSS feed   Index | Next | Previous | View Threaded


brettlee at yahoo

Jan 27, 2012, 10:07 AM

Post #1 of 3 (394 views)
Permalink
Registry and CGI::Carp

Hi Folks,

Running several scripts under ModPerl::Registry that use CGI::Carp.  Am seeing problems with the logging.  The message that is logged is correct, however the name of the script that generated the event is not.

Each script contains a line similar to:

use CGI::Carp qw(name=my_script_X);

When the scripts are precompiled in startup.pl, the *same* script name is logged for each and every script.  When scripts are not precompiled the name is frequently correct, but it is not correct all of the time.

A post earlier to Perl Monks came back with the suggestion to extend CGI::Carp.pm to support running under Registry.  As what I am trying to do seems like it would be a pretty common scenario, am thinking there may be another option.

Thanks for considering this one.
Brett


jschueler at eloquency

Jan 27, 2012, 1:11 PM

Post #2 of 3 (368 views)
Permalink
Re: Registry and CGI::Carp [In reply to]

There's no question or anything resembling a request in your email. So my
response may waste a lot of time.

Is this your original post?
http://www.perlmonks.org/?node_id=949773

If so, I might be able to help.

Admittedly, I can't follow the thread. The PerlMonds responder refers to
a function set_progname(). But I can't figure out what that refers to.

However, in the third exchange, you referenced a problem I have some
experience with: Apache::Registry executes the BEGIN{} block once, and
the END{} block repeatedly. Fundamentally, the Perl specification expects
them to be balanced, and I'm still amazed at this shortcoming. I wrote a
workaround that might get you over your hurdle. Please check out
Apache::ChildExit.

I'm amazed that my solution wasn't generally adopted. As you note, it
seems like this would be a pretty common scenario. Give it a try, and
please let me know whether this solution gives you any traction.

Cheers!

-Jim



On Fri, 27 Jan 2012, Brett Lee wrote:

> Hi Folks,
>
> Running several scripts under ModPerl::Registry that use CGI::Carp.  Am
> seeing problems with the logging.  The message that is logged is correct,
> however the name of the script that generated the event is not.
>
> Each script contains a line similar to:
>
> use CGI::Carp qw(name=my_script_X);
>
> When the scripts are precompiled in startup.pl, the *same* script name is
> logged for each and every script.  When scripts are not precompiled the name
> is frequently correct, but it is not correct all of the time.
>
> A post earlier to Perl Monks came back with the suggestion to extend
> CGI::Carp.pm to support running under Registry.  As what I am trying to do
> seems like it would be a pretty common scenario, am thinking there may be
> another option.
>
> Thanks for considering this one.
> Brett
>
>


brettlee at yahoo

Jan 27, 2012, 2:23 PM

Post #3 of 3 (368 views)
Permalink
Re: Registry and CGI::Carp [In reply to]

Jim,

Thanks for your reply.  Yes,
that was my post to perlmonks.  set_progname() is a function in the Carp module that lets you set/reset the name of the Carping script; that way you know which script generated the logged event.  Another way is to pass
"name=scriptX" to 'use CGI::Carp'.

> seeing problems with the logging.  The message that is logged is correct,
> however the name of the script that generated the event is not.

The question above was implied; sorry, not ideal for this format.  Being more explicit:

"What is the best way to get CGI::Carp to accurately log the names of Carping Registry scripts?"

Regarding END{}, my inconclusive tests support this:


http://perl.apache.org/docs/2.0/api/ModPerl/Registry.html#C_END__Blocks


Brett





>________________________________
> From: Jim Schueler <jschueler [at] eloquency>
>To: Brett Lee <brettlee [at] yahoo>
>Cc: modperl <modperl [at] perl>
>Sent: Friday, January 27, 2012 2:11 PM
>Subject: Re: Registry and CGI::Carp
>
>There's no question or anything resembling a request in your email.  So my response may waste a lot of time.
>
>Is this your original post?
http://www.perlmonks.org/?node_id=949773
>
>If so, I might be able to help.
>
>Admittedly, I can't follow the thread.  The PerlMonds responder refers to a function set_progname().  But I can't figure out what that refers to.
>
>However, in the third exchange, you referenced a problem I have some experience with:  Apache::Registry executes the BEGIN{} block once, and the END{} block repeatedly.  Fundamentally, the Perl specification expects them to be balanced, and I'm still amazed at this shortcoming.  I wrote a workaround that might get you over your hurdle.  Please check out Apache::ChildExit.
>
>I'm amazed that my solution wasn't generally adopted.  As you note, it seems like this would be a pretty common scenario.  Give it a try, and please let me know whether this solution gives you any traction.
>
>Cheers!
>
>-Jim
>
>
>
>On Fri, 27 Jan 2012, Brett Lee wrote:
>
>> Hi Folks,
>>
>> Running several scripts under ModPerl::Registry that use CGI::Carp.  Am
>> seeing problems with the logging.  The message that is logged is correct,
>> however the name of the script that generated the event is not.
>>
>> Each script contains a line similar to:
>>
>> use CGI::Carp qw(name=my_script_X);
>>
>> When the scripts are precompiled in startup.pl, the *same* script name is
>> logged for each and every script.  When scripts are not precompiled the name
>> is frequently correct, but it is not correct all of the time.
>>
>> A post earlier to Perl Monks came back with the suggestion to extend
>> CGI::Carp.pm to support running under Registry.  As what I am trying to do
>> seems like it would be a pretty common scenario, am thinking there may be
>> another option.
>>
>> Thanks for considering this one.
>> Brett
>>
>>
>
>

ModPerl modperl RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.