X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=scpubgit%2FObject-Remote.git;a=blobdiff_plain;f=lib%2FObject%2FRemote%2FLogging%2FLogAnyInjector.pm;h=572979d5e19642fbe466e6c6bcbb2f60ea065365;hp=77d75b7151bb4517c2289a16d5a8246dce100842;hb=572a9a00cec239943f92157ec39c44398aad137f;hpb=ae19820130feb4fc48d8e365ce5c3109642d203c diff --git a/lib/Object/Remote/Logging/LogAnyInjector.pm b/lib/Object/Remote/Logging/LogAnyInjector.pm index 77d75b7..572979d 100644 --- a/lib/Object/Remote/Logging/LogAnyInjector.pm +++ b/lib/Object/Remote/Logging/LogAnyInjector.pm @@ -1,5 +1,8 @@ package Object::Remote::Logging::LogAnyInjector; +#Experimental object that can be used to receive Log::Any +#generated log messages and inject them into the log router + use Moo; use Object::Remote::Logging qw( router ); use Carp qw(croak); @@ -28,16 +31,15 @@ sub AUTOLOAD { #skip DESTROY and friends return if $log_level =~ m/^[A-Z]+$/; - if ($log_level =~ s/f$//) { - my $format = shift(@content); - $generator = sub { sprintf($format, @content) }; + if ($log_contextual_level = $LEVEL_NAME_MAP{$log_level}) { + $generator = sub { @content }; + } elsif(($log_level =~ s/f$//) && ($log_contextual_level = $LEVEL_NAME_MAP{$log_level})) { + my $format = shift(@content); + $generator = sub { sprintf($format, @content) }; } else { - $generator = sub { @content }; + croak "invalid log level: $log_level"; } - - $log_contextual_level = $LEVEL_NAME_MAP{$log_level}; - croak "invalid log level name: $log_level" unless defined $log_contextual_level; - + router->handle_log_request({ controller => 'Log::Any', package => scalar(caller),