X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FObject%2FRemote%2FLogRouter.pm;fp=lib%2FObject%2FRemote%2FLogRouter.pm;h=0000000000000000000000000000000000000000;hb=4e4463355a9ec6afdc7983ee36daa9f11306d4fc;hp=3b1f655f6cc3b20b1dbf1493b5392f44b86101d1;hpb=6536ccd3af048ed71845cc5ea453855f45e66971;p=scpubgit%2FObject-Remote.git diff --git a/lib/Object/Remote/LogRouter.pm b/lib/Object/Remote/LogRouter.pm deleted file mode 100644 index 3b1f655..0000000 --- a/lib/Object/Remote/LogRouter.pm +++ /dev/null @@ -1,60 +0,0 @@ -package Object::Remote::LogRouter; - -use Moo; -use Scalar::Util qw(blessed); - -with 'Object::Remote::Role::LogForwarder'; - -has subscriptions => ( is => 'ro', required => 1, default => sub { [] } ); -has description => ( is => 'rw', required => 1 ); - -sub before_import { } -sub after_import { } - -sub subscribe { - my ($self, $logger, $selector) = @_; - my $subscription_list = $self->subscriptions; - - my $subscription = [ $logger, $selector ]; - - push(@$subscription_list, $subscription); - - return $self; -} - -#TODO turn this logic into a role -sub get_loggers { - my ($self, $caller, $level) = @_; - my $should_clean = 0; - my @logger_list; - - foreach(@{ $self->subscriptions }) { - unless(defined) { - $should_clean = 1; - next; - } - - my ($logger, $selector) = @$_; - - if ($selector->({ log_level => $level, package => $caller, caller_level => 2 })) { - push(@logger_list, $logger); - } - } - - if ($should_clean) { - $self->_remove_dead_subscriptions; - } - - return @logger_list; -} - -sub _remove_dead_subscriptions { - my ($self) = @_; - my @ok = grep { defined $_ } @{$self->subscriptions}; - @{$self->subscriptions} = @ok; - return; -} - - -1; -