Daniel B. Hemmerich wrote:
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!
Maybe it has to do with this:
http://perl.apache.org/docs/2.0/user/install/install.html#Apache
-DAP_UNSAFE_ERROR_LOG_UNESCAPED
--
Arshavir Grigorian
Systems Administrator/Engineer