From: J M. <jm...@gm...> - 2011-10-12 17:05:25
|
Greetings, I've recently encountered an odd issue while using Moose to create a wrapper class for Log::Log4perl that results in the logger's category somehow being returned as 'Eval.Closure', despite that I've registered the wrapper class as indicated in the documentation. I'm not sure if this is an actual issue or just something I'm missing with regards to wrapping Log::Log4perl, but here's a simplified code example that exhibits the issue: *## --------------------------------------------------------------------------------------------------------------------- { package Wrapper::Log::Log4perl; use Moose; use MooseX::Method::Signatures; use Log::Log4perl; Log::Log4perl->wrapper_register( __PACKAGE__ ); ## Attribute definitions has 'logger' => ( is => 'rw', isa => 'Log::Log4perl::Logger', ); has 'logger_cfg' => ( is => 'ro', isa => 'Maybe[Str]', ); ## Object initialization sub BUILD { my $self = shift(); unless ( Log::Log4perl->initialized() ) { $self->init( $self->logger_cfg() ); } $self->logger( Log::Log4perl->get_logger() ); } ## Method definitions method init ( Str $cfg ) { Log::Log4perl->init( $cfg ); }; __PACKAGE__->meta->make_immutable(); } ## --------------------------------------------------------------------------------------------------------------------- { package main; use Data::Dumper; my $logApi = Wrapper::Log::Log4perl->new( logger_cfg => '../Data/INI/Log/Log4perl.ini' ); print( Dumper($Log::Log4perl::Logger::LOGGERS_BY_NAME) ); } * Thanks in advance for taking a peek, and let me know if there's any more information I can provide. --J |