NAME Catalyst::Plugin::FirePHP SYNOPSIS In your application class (e.g. MyApp.pm): use Catalyst ( ..., '+Catalyst::Plugin::FirePHP' ); use Catalyst::Log::Log4perl; __PACKAGE__->config( name => 'Just a Catalyst application', FirePHP => { action_grouping => 1, compact => 1 } ); # only if you want to change the appender layout to use cspecs __PACKAGE__->log( Catalyst::Log::Log4perl->new( 'log4perl.conf', override_cspecs => 1 )); In your log4perl config (only if you want to change the message layout): log4perl.rootLogger = DEBUG, SCREEN, FIREPHP log4perl.appender.SCREEN = Log::Log4perl::Appender::Screen log4perl.appender.SCREEN.layout = SimpleLayout log4perl.appender.FIREPHP = FirePHP::Log4perl::Appender log4perl.appender.FIREPHP.layout = FirePHP::Log4perl::Layout And later... $c->log->debug("This is using log4perl AND FirePHP!"); DESCRIPTION Catalyst::Plugin::FirePHP automatically binds the current response headers to a newly created FirePHP::Dispatcher in use and on demand creates nested groups for all called actions. The only thing you need to do to start using FirePHP is include this plugin in your plugin list. Everything else should happen automatically, no config is needed. This plugin tries to be as unintrusive as possible if your application doesn't run in debug mode, but it is highly recommended to drop it altogether in production servers. ACCESSORS firephp_log Direct access to the FirePHP::Dispatcher in use. Returns a Class::BlackHole instance if none is available so doesn't blow up your application in case you forget to call it conditionally as in $c->firephp_log->info( 'Foo' ) if $c->firephp_log; EXTENDS setup_components After setup_components is executed this plugin tries to amend or hijack the logger and create a suitable log connector, defaulting to FirePHP::LogConnector::Catalyst::Log which replaces the original logger and tries to forward as much as possible. dispatch Small wrapper that delegates all the work to the log connector if FirePHP logging is enabled. If not, the normal call chain is resumed Unfortunatly log connectors are responsible to ensure that the log is flushed after the dispatch cycle ends. This can not easily be changed due to various scoping issues. execute Implements action grouping INTERNALS _firephp_log_connector Access to the FirePHP::LogConnector in use. This might return a FirePHP::LogConnector::Null in later versions. Right now, it defaults to FirePHP::LogConnector::Catalyst::Log regardless of debug mode. SEE ALSO , Catalyst, FirePHP::Dispatcher AUTHOR Sebastian Willert, "willert@cpan.org" COPYRIGHT AND LICENSE Copyright 2009 by Sebastian Willert This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.