package Catalyst::Plugin::Log::Log4perlSimple;
BEGIN {
$Catalyst::Plugin::Log::Log4perlSimple::VERSION = '0.3';
}
# ABSTRACT: Simple Log4perl plugin for Catalyst
use 5.010;
use strict;
use warnings;
use Moose;
use namespace::autoclean;
use Catalyst::Log::Log4perlSimple;
=head1 NAME
Catalyst::Plugin::Log::Log4perlSimple
=head1 SYNOPSIS
# in MyApp.pm
use Catalyst qw( Log::Log4perlSimple );
# in myapp.conf
# note that this configuration is entirely optional. The block below is
# indicating the default values for everything, so if they look okay to you,
# just omit the configuration entirely.
<Plugin Log::Log4perlSimple>
# Set this to 0 or 1 to indicate if you would like Catalyst debugging output.
catalyst_debug 0
# Set this to 0 or 1 to indicate if you would like Catalyst statistics output.
catalyst_stats 0
# What is the lowest level of debugging information you would like output
# by by Log4perl (trace, debug, info, or warn)
log_level debug
# Boolean to control if we want to log to screen
screen 1
# Optional control specifying a filename to write log data to (comment this
# out to disable writing to a file)
#file /path/to/somefile.log
</Plugin>
=head1 DESCRIPTION
Provides a zero configuration alternative to L<Catalyst::Log>.
Instantly gives you coloured terminal output and timestamps on your development
server.
Provides a trivial mechanism for routing log messages to a file (configurable
via your application's config file).
=head1 AUTHOR
Martyn Smith <martyn@dollyfish.net.nz>
=head1 METHODS
=head2 setup()
Implementation of the setup callback for L<Catalyst> plugins. This is used to
setup up the logging object.
=cut
sub setup {
my ($class) = @_;
my $defaults = {
catalyst_debug => 0,
catalyst_stats => 0,
log_level => 'debug',
screen => 1,
file => undef,
};
my $config = $class->config->{'Plugin::Log::Log4perlSimple'};
$config = {} unless UNIVERSAL::isa($config, 'HASH');
$class->log(Catalyst::Log::Log4perlSimple->new);
foreach my $key ( keys %{$defaults} ) {
$config->{$key} = $defaults->{$key} unless exists $config->{$key};
}
if ( $config->{catalyst_debug} ) {
Class::MOP::get_metaclass_by_name($class)->add_method('debug' => sub { 1 });
}
if ( $config->{catalyst_stats} ) {
Class::MOP::get_metaclass_by_name($class)->add_method('use_stats' => sub { 1 });
}
if ( $config->{screen} ) {
$class->log->screen_output(1);
}
if ( $config->{file} ) {
$class->log->file_output($config->{file});
}
$class->maybe::next::method(@_);
};
1;