diff options
Diffstat (limited to 'lib/Log/Dispatch/Screen.pm')
-rw-r--r-- | lib/Log/Dispatch/Screen.pm | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/lib/Log/Dispatch/Screen.pm b/lib/Log/Dispatch/Screen.pm new file mode 100644 index 0000000..4b93464 --- /dev/null +++ b/lib/Log/Dispatch/Screen.pm @@ -0,0 +1,118 @@ +package Log::Dispatch::Screen; + +use strict; +use warnings; + +our $VERSION = '2.45'; + +use Log::Dispatch::Output; + +use base qw( Log::Dispatch::Output ); + +use Params::Validate qw(validate BOOLEAN); +Params::Validate::validation_options( allow_extra => 1 ); + +sub new { + my $proto = shift; + my $class = ref $proto || $proto; + + my %p = validate( + @_, { + stderr => { + type => BOOLEAN, + default => 1 + }, + } + ); + + my $self = bless {}, $class; + + $self->_basic_init(%p); + $self->{stderr} = exists $p{stderr} ? $p{stderr} : 1; + + return $self; +} + +sub log_message { + my $self = shift; + my %p = @_; + + if ( $self->{stderr} ) { + print STDERR $p{message}; + } + else { + print STDOUT $p{message}; + } +} + +1; + +# ABSTRACT: Object for logging to the screen + +__END__ + +=pod + +=head1 NAME + +Log::Dispatch::Screen - Object for logging to the screen + +=head1 VERSION + +version 2.45 + +=head1 SYNOPSIS + + use Log::Dispatch; + + my $log = Log::Dispatch->new( + outputs => [ + [ + 'Screen', + min_level => 'debug', + stderr => 1, + newline => 1 + ] + ], + ); + + $log->alert("I'm searching the city for sci-fi wasabi"); + +=head1 DESCRIPTION + +This module provides an object for logging to the screen (really +STDOUT or STDERR). + +Note that a newline will I<not> be added automatically at the end of a +message by default. To do that, pass C<< newline => 1 >>. + +=for Pod::Coverage new log_message + +=head1 CONSTRUCTOR + +The constructor takes the following parameters in addition to the standard +parameters documented in L<Log::Dispatch::Output>: + +=over 4 + +=item * stderr (0 or 1) + +Indicates whether or not logging information should go to STDERR. If +false, logging information is printed to STDOUT instead. This +defaults to true. + +=back + +=head1 AUTHOR + +Dave Rolsky <autarch@urth.org> + +=head1 COPYRIGHT AND LICENSE + +This software is Copyright (c) 2015 by Dave Rolsky. + +This is free software, licensed under: + + The Artistic License 2.0 (GPL Compatible) + +=cut |