Thanks for the good idea... it is a direction worth investigating
further. Until someone offers a potentially better solution, I will play
around with this and hopefully in the next few days report back on my
results!
Thanks again,
Daniel
Jonathan Vanasco wrote:
I really have no idea, but no one has chimed up on this, so I'll try to
help (and maybe someone here can clear up my misconceptions)
MP writes to STDERR, BUT things can get weird because of the way apache2
handles error messages --
I could have this wrong, but mp errors and perl errors seem to go to the
main apache error log ( on my system that's
/usr/local/apache2/logs/error_log ).
When i specify a separate errorlog for a vhost, STDERR is directed there
I don't know how to accomplish what you want , but I think I can help
point you in a direction:
When I saw this post, i remembered how the default OSX apache2/mp had a
specific compile time option that didn't 'print' to apache -- i think
one had to call $r->print() instead of print, because of how STDOUT was
directed.
The 'fix' was either to recompile apache, or set up a perl handler
to tie STDOUT to Apache
I'm found a post about this on google (not sure if its the 'right' one,
i came across this 2 years ago):
http://www.macosxhints.com/article.php?story=20031129120521712
PerlHeaderParserHandler "sub { tie *STDOUT, 'Apache' unless tied
*STDOUT; }"
Based on that, i *think* that you could probably write a handler that
intercepts STDERR, rewrites it to your specifications, and
ties/redirects it somewhere
But , two things worry me about this:
a_ i'm not quite sure of the mechanics of the multiple log files that
apache can generate, and which one(s) would have what you want -- or how
to intercept them
b_ i'm quite sure that there is a better way, that probably uses more
of the apache configuration powers of mod_perl, and not a crazy hack
like this
Again, I dont have much of an idea on this -- but no one else chimed up
and that tie to STDOUT really popped out in my memories when I read this
post.
On May 31, 2005, at 8:36 AM, Daniel B. Hemmerich wrote:
Hello all...
When a misconfiguration occurs, we receive a new line in the apache
error logs that is not in the standard error log format (I assume
since MP is writing to STDERR). Short of changing all of our scripts
to properly log, is there a quicker method to accomplish the following
change:
Change this:
Can't locate /www/path/goes/here//config.pl in @INC (@INC contains:
/usr/local/lib/perl5/5.8.4/i686-linux /usr/local/lib/perl5/5.8.4
/usr/local/lib/perl5/site_perl/5.8.4/i686-linux
/usr/local/lib/perl5/site_perl/5.8.4 /usr/local/lib/perl5/site_perl .)
at /www/example.com/cgi-bin/example.cgi line 64.
To this:
[Thu May 19 08:47:41 2005] [error] [MODULENAME Can't locate
/www/path/goes/here//config.pl in @INC (@INC contains:
/usr/local/lib/perl5/5.8.4/i686-linux /usr/local/lib/perl5/5.8.4
/usr/local/lib/perl5/site_perl/5.8.4/i686-linux
/usr/local/lib/perl5/site_perl/5.8.4 /usr/local/lib/perl5/site_perl .)
at /www/example.com/cgi-bin/example.cgi line 64.
Thanks in advance!