package MyApp::Foo; use namespace::autoclean; use Moose; # ... BEGIN { extends MyApp::Utilities; } # override begin method (fr Catalyst::Action::Deserialize) to access log stuff sub begin : Private { my ($self, $c) = @_; my $logfile = $c->config->{ 'foo_logfile'}; # This is stored in external config file; name isn't predictable my $log = Log::Dispatch->new( outputs => [ [ 'File', min_level => 'debug', mode => '>>', newline => 1, filename => $logfile ], ], ); $c->stash->{log_object} = $log; $c->forward('deserialize'); # ultimately goes to our callback } sub deserialize : ActionClass('Deserialize') {}