Alien-Build
view release on metacpan or search on metacpan
lib/Alien/Build/Log.pm view on Meta::CPAN
package Alien::Build::Log;
use strict;
use warnings;
use 5.008004;
use Carp ();
# ABSTRACT: Alien::Build logging
our $VERSION = '2.84'; # VERSION
my $log_class;
my $self;
sub new
{
my($class) = @_;
Carp::croak("Cannot instantiate base class") if $class eq 'Alien::Build::Log';
return bless {}, $class;
}
sub default
{
$self || do {
my $class = $log_class || $ENV{ALIEN_BUILD_LOG} || 'Alien::Build::Log::Default';
unless(eval { $class->can('new') })
{
my $pm = "$class.pm";
$pm =~ s/::/\//g;
require $pm;
}
$class->new;
}
}
sub set_log_class
{
my(undef, $class) = @_;
return if defined $class && ($class eq ($log_class || ''));
$log_class = $class;
undef $self;
}
sub log
{
Carp::croak("AB Log base class");
}
1;
__END__
=pod
=encoding UTF-8
=head1 NAME
Alien::Build::Log - Alien::Build logging
=head1 VERSION
version 2.84
=head1 SYNOPSIS
Create your custom log class:
package Alien::Build::Log::MyLog;
use parent qw( Alien::Build::Log );
sub log
{
my(undef, %opt) = @_;
my($package, $filename, $line) = @{ $opt{caller} };
( run in 0.389 second using v1.01-cache-2.11-cpan-9bca49b1385 )