my $LoggerClass = $self->logger_class();
####
sub logger_class
{
ref(shift) . '::Debug';
}
####
sub logger_class
{
my $self = shift;
my $set = 0;
# was a (new?) class passed in?
$self->{__PACKAGE__ . ':logger_class'} = shift and $set++ if @_;
# if we don't have one, construct the default.
unless (exists $self->{__PACKAGE__ . ':logger_class'})
{
$self->{__PACKAGE__ . ':logger_class'} = ref(shift) . '::Debug';
$set++;
}
# if it changed, do any configuration needed.
if ($set)
{
# load the class, etc.
}
# done - return it.
$self->{__PACKAGE__ . ':logger_class'};
}
####
# in some other package...
sub logger_class
{
my $self = shift;
$self->SUPER::logger_class('Some::Shared::Package::Debug');
}