4 use base 'Class::Accessor::Fast';
9 __PACKAGE__->mk_accessors('level');
12 my @levels = qw[ debug info warn error fatal ];
14 for ( my $i = 0 ; $i < @levels ; $i++ ) {
16 my $name = $levels[$i];
19 $LEVELS{$name} = $level;
26 if ( $self->{level} & $level ) {
27 $self->_log( $name, @_ );
33 return $self->{level} & $level;
40 my $self = $class->SUPER::new;
41 $self->levels( scalar(@_) ? @_ : keys %LEVELS );
46 my ( $self, @levels ) = @_;
48 $self->enable(@levels);
52 my ( $self, @levels ) = @_;
53 $self->{level} |= $_ for map { $LEVELS{$_} } @levels;
57 my ( $self, @levels ) = @_;
58 $self->{level} &= ~$_ for map { $LEVELS{$_} } @levels;
63 local $Data::Dumper::Terse = 1;
64 $self->info( Dumper( $_[0] ) );
70 my $time = localtime(time);
71 my $message = join( "\n", @_ );
72 printf( STDERR "[%s] [catalyst] [%s] %s\n", $time, $level, $message );
81 Catalyst::Log - Catalyst Log Class
86 $log->debug($message);
89 $log->error($message);
90 $log->fatal($message);
92 if ( $log->is_debug ) {
101 This module provides the default, simple logging functionality for
103 If you want something different set C<$c->log> in your application
106 $c->log( MyLogger->new );
108 Your logging object is expected to provide the interface described here.
117 $log->debug($message);
122 $log->info($message);
127 $log->warn($message);
132 $log->error($message);
137 $log->fatal($message);
147 Constructor, defaults to enable all levels unless levels a provieded in
150 $log = Catalyst::Log->new;
151 $log = Catalyst::Log->new( 'warn', 'error', 'fatal' );
157 $log->levels( 'warn', 'error', 'fatal' );
163 $log->enable( 'warn', 'error' );
169 $log->disable( 'warn', 'error' );
181 Is the log level active?
191 Sebastian Riedel, C<sri@cpan.org>
192 Marcus Ramberg, C<mramberg@cpan.org>
193 Christian Hansen, C<ch@ngmedia.com>
197 This program is free software, you can redistribute it and/or modify
198 it under the same terms as Perl itself.