• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 546
  • Last Modified:

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.
0
shlomoy
Asked:
shlomoy
1 Solution
 
maneshrCommented:
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

Featured Post

[Webinar On Demand] Database Backup and Recovery

Does your company store data on premises, off site, in the cloud, or a combination of these? If you answered “yes”, you need a data backup recovery plan that fits each and every platform. Watch now as as Percona teaches us how to build agile data backup recovery plan.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now