[Catalyst] Annoyance with Static::Simple and Log4Perl on Catalyst
5.9
Kieren Diment
diment at gmail.com
Thu Nov 3 20:37:33 GMT 2011
I came across this bug after a recent upgrade to Catalyst 5.9. Static content served by Static::Simple is logged in apps which use Log4Perl for logging.
There was a suggestion that using $c->log->_flush would prevent this (which leaves the question of how to detect a development environment to automate this in development).
To confirm this I wrote a minimal test case, but I'm not sure where to take it from here. Any ideas?
The minimal test case is below:
package StaticTest::Controller::Root;
use Moose;
use namespace::autoclean;
BEGIN { extends 'Catalyst::Controller' }
__PACKAGE__->config(namespace => '');
sub default :Path {
my ( $self, $c ) = @_;
$c->response->body( $c->welcome_message );
}
sub end : ActionClass('RenderView') {
my ($self, $c) = @_;
$c->log->_flush; # doesn't suppress static logging
}
__PACKAGE__->meta->make_immutable;
1;
package StaticTest;
use Moose;
use namespace::autoclean;
use Log::Log4perl::Catalyst;
use Catalyst::Runtime 5.80;
use Catalyst qw/
-Debug
ConfigLoader
Static::Simple
/;
extends 'Catalyst';
our $VERSION = '0.01';
# doesn't suppress logging of static content
after 'finalize' => sub {
my ($self) = @_;
$self->log->_flush;
};
__PACKAGE__->log(Log::Log4perl::Catalyst->new());
__PACKAGE__->config(
name => 'StaticTest',
disable_component_resolution_regex_fallback => 1,
);
__PACKAGE__->setup();
1;
Kieren Diment
PhD Candidate
Health Informatics Research Lab,
Faculty of Informatics,
University of Wollongong
Tel: +61 4221 3952
More information about the Catalyst
mailing list