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.
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.