package Catalyst::Logger; # no need for Base
use base qw( Class::Factory );
__PACKAGE__->register_factory_type(
stream => 'Catalyst::Logger::Stream' );
__PACKAGE__->register_factory_type(
apache => 'Catalyst::Logger::Apache' );
...
my $logger = Catalyst::Logger(
'file',
{ filename => '/var/log/my_place/app.log',
log_priority => 'INFO',
show_source => 1,
show_time => 1,
} );