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=a8cf177dfa543dd0feee0d0038c736b0ef21547a;hb=572a9a00cec239943f92157ec39c44398aad137f;hpb=5cd5276e59fc209dbca8f80ec869cf4f2e5e3dff diff --git a/lib/Object/Remote/Logging/LogAnyInjector.pm b/lib/Object/Remote/Logging/LogAnyInjector.pm index a8cf177..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); @@ -23,21 +26,20 @@ sub AUTOLOAD { our %LEVEL_NAME_MAP; #just a proof of concept - support for the is_ methods can - #be done but requires more modifications to the router + #be done but requires modifications to the router return 1 if $log_level =~ m/^is_/; #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),