plack / Plack

PSGI toolkit and server adapters
http://plackperl.org/
Other
486 stars 214 forks source link

FCGI.pm and stderr #521

Open dustintenney opened 9 years ago

dustintenney commented 9 years ago

When catalyst switched to Plack::Handler::FCGI.pm for launching our applications we lost STDERR output to our apache logs. This occurs when running in daemonized mode. If your run it in the foreground STDERR shows up properly in the console. This still occurs on the latest perl 5.22 and catalyst 5.901.

We use mod_fastcgi like this in apache: FastCgiExternalServer /tmp/myapp.fcgi -host 127.0.0.1:11000

I found changing the code in Plack::Handler::FCGI from:

my $request = FCGI::Request( $self->{stdin}, $self->{stdout}, $self->{stderr},

to

my $request = FCGI::Request( $self->{stdin}, $self->{stdout}, *STDERR,

fixes the issue. I looked at the old code from catalyst and it didn't use IO::Handler. I would appreciate any insight into this. A lot of our underlying libraries will dump stuff to STDERR and we are losing that information.