X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=scpubgit%2FObject-Remote.git;a=blobdiff_plain;f=lib%2FObject%2FRemote%2FLogRouter.pm;h=12ce1a9545f68cd6b90e9e2bc8ce1a51562728f6;hp=17108dcd1e81009b2f610654a6f271dbb78274ab;hb=9031635d18e754da303557b656c63ce8e7eb8e77;hpb=9d64d2d9b2401f99b747ecf754384adb661f0a5b diff --git a/lib/Object/Remote/LogRouter.pm b/lib/Object/Remote/LogRouter.pm index 17108dc..12ce1a9 100644 --- a/lib/Object/Remote/LogRouter.pm +++ b/lib/Object/Remote/LogRouter.pm @@ -71,7 +71,7 @@ sub handle_log_message { #this info to the selector is a good feature local($_) = { level => $level, package => $caller }; if ($selector->(@values)) { - #TODO resolve caller_level issues with routing + #SOLVED resolve caller_level issues with routing #idea: the caller level will differ in distance from the #start of the call stack but it's a constant distance from #the end of the call stack - can that be exploited to calculate @@ -83,7 +83,14 @@ sub handle_log_message { #it can be invoked in that location and the caller level #problem doesn't exist anymore $logger = $logger->($caller, { caller_level => -1 }); - + + #TODO there is a known issue with the interaction of this + #routed logging scheme and objects proxied with Object::Remote. + #Specifically the loggers must be invoked with a calling + #depth of 0 which isn't possible using a logger that has + #been proxied which is what happens with routed logging + #if the logger is created in one Perl interpreter and the + #logging happens in another $logger->$level($log_meth->(@values)) if $logger->${\"is_$level"}; }