use 5.008001; use strict; use warnings; package Log::Any::Adapter::Stderr; # ABSTRACT: Simple adapter for logging to STDERR our $VERSION = '1.717'; use Log::Any::Adapter::Util (); use Log::Any::Adapter::Base; our @ISA = qw/Log::Any::Adapter::Base/; my $trace_level = Log::Any::Adapter::Util::numeric_level('trace'); sub init { my ($self) = @_; if ( exists $self->{log_level} && $self->{log_level} =~ /\D/ ) { my $numeric_level = Log::Any::Adapter::Util::numeric_level( $self->{log_level} ); if ( !defined($numeric_level) ) { require Carp; Carp::carp( sprintf 'Invalid log level "%s". Defaulting to "%s"', $self->{log_level}, 'trace' ); } $self->{log_level} = $numeric_level; } if ( !defined $self->{log_level} ) { $self->{log_level} = $trace_level; } } foreach my $method ( Log::Any::Adapter::Util::logging_methods() ) { no strict 'refs'; my $method_level = Log::Any::Adapter::Util::numeric_level($method); *{$method} = sub { my ( $self, $text ) = @_; return if $method_level > $self->{log_level}; print STDERR "$text\n"; }; } foreach my $method ( Log::Any::Adapter::Util::detection_methods() ) { no strict 'refs'; my $base = substr( $method, 3 ); my $method_level = Log::Any::Adapter::Util::numeric_level($base); *{$method} = sub { return !!( $method_level <= $_[0]->{log_level} ); }; } 1; __END__ =pod =encoding UTF-8 =head1 NAME Log::Any::Adapter::Stderr - Simple adapter for logging to STDERR =head1 VERSION version 1.717 =head1 SYNOPSIS use Log::Any::Adapter ('Stderr'); # or use Log::Any::Adapter; ... Log::Any::Adapter->set('Stderr'); # with minimum level 'warn' use Log::Any::Adapter ('Stderr', log_level => 'warn' ); =head1 DESCRIPTION This simple built-in L adapter logs each message to STDERR with a newline appended. Category is ignored. The C attribute may be set to define a minimum level to log. =head1 SEE ALSO L, L =head1 AUTHORS =over 4 =item * Jonathan Swartz =item * David Golden =item * Doug Bell =item * Daniel Pittman =item * Stephen Thirlwall =back =head1 COPYRIGHT AND LICENSE This software is copyright (c) 2017 by Jonathan Swartz, David Golden, and Doug Bell. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut