| MozRepl documentation | Contained in the MozRepl distribution. |
MozRepl::Log - MozRepl logging class
version 0.01
use MozRepl;
my $repl = MozRepl->new;
$repl->setup;
$repl->log->debug("Look! someone on that wall!");
Create instance. If you want to limit log levels, then specify only levels to want to use.
my $log = MozRepl::Log->new(qw/info error/);
Return whether the specified level is enabled or not.
Logging messege as specified level.
Logging message as debug level.
Logging message as info level.
Logging message as warn level.
Logging message as error level.
Logging message as fatl level.
Return whether the debug level is enabled or not.
Return whether the info level is enabled or not.
Return whether the warn level is enabled or not.
Return whether the error level is enabled or not.
Return whether the fatl level is enabled or not.
Toru Yamaguchi, <zigorou@cpan.org>
Please report any bugs or feature requests to
bug-mozrepl-log@rt.cpan.org, or through the web interface at
http://rt.cpan.org. I will be notified, and then you'll automatically be
notified of progress on your bug as I make changes.
Copyright 2007 Toru Yamaguchi, All Rights Reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
| MozRepl documentation | Contained in the MozRepl distribution. |
package MozRepl::Log; use strict; use warnings; use base qw(Class::Accessor::Fast); __PACKAGE__->mk_accessors(qw/levels/); our %LEVELS = (); { my @levels = qw/debug info warn error fatal/; for ( my $i = 0; $i < @levels; $i++ ) { my $name = $levels[$i]; my $level += $i; $LEVELS{$name} = $level; no strict 'refs'; *{$name} = sub { my $self = shift; if ( $self->enable($level) ) { $self->log( uc($name), @_ ); } }; *{"is_$name"} = sub { my $self = shift; return ( $self->enable($level) ) ? 1 : 0; }; } }
our $VERSION = '0.01';
sub new { my ($class, @levels) = @_; my $self = $class->SUPER::new; $self->levels( [ @levels > 0 ? grep { exists $LEVELS{$_} } map { lc($_) } @levels : keys %LEVELS ] ); return $self; }
sub enable { my ( $self, $level ) = @_; ( ( grep { $LEVELS{$_} == $level } @{ $self->levels } ) == 1 ) ? 1 : 0; }
sub log { my $self = shift; my $level = shift; my @messages = map { split(/\n/, $_) } @_; my $message = @messages > 1 ? join("\n", "", @messages) : shift @messages; warn( sprintf( "[%s] %s\n", $level, $message ) ); }
1; # End of MozRepl::Log