[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