redirecting STDERR to STDOUT for CGI scripts

How can I redirect STDERR to STDOUT?
I need it so that error messages of a cgi script will appeare in the HTML rather then ending up in the apache error log.
LVL 8
shlomoyAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
maneshrConnect With a Mentor Commented:
The following use of CGI::Carp redirects errors to STDOUT, placed in a BEGIN block to catch compile-time warnings as well:

BEGIN {
    use CGI::Carp qw(carpout);
    carpout(\*STDOUT);
}

You can even arrange for fatal errors to return to the client browser, which is nice for your own debugging but might confuse the end user.

use CGI::Carp qw(fatalsToBrowser);
die "Bad error here";

Even if the error happens before you get the HTTP header out, the module will try to take care of this to avoid the dreaded 500 Server Error.  Normal warnings still go out to the server error log (or wherever you've sent them with carpout) with the application name and date stamp prepended.

Hope that helps
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.