Beekeeper

 view release on metacpan or  search on metacpan

lib/Beekeeper/Service/LogTail.pm  view on Meta::CPAN

package Beekeeper::Service::LogTail;

use strict;
use warnings;

our $VERSION = '0.10';

use Beekeeper::Client;

# Show errors from perspective of caller
$Carp::Internal{(__PACKAGE__)}++;


sub tail {
    my ($class, %args) = @_;

    my $client = Beekeeper::Client->instance;
    my $guard = $client->__use_authorization_token('BKPR_ADMIN');
    my $timeout = delete $args{'timeout'};

    my $resp = $client->call_remote(
        method  => '_bkpr.logtail.tail',
        params  => \%args,
        timeout => $timeout,
    );

    return $resp->result;
}

sub tail_async {
    my ($class, %args) = @_;

    my $on_success = delete $args{'on_success'};
    my $on_error   = delete $args{'on_error'};

    unless ($on_error) {
        my ($file, $line) = (caller)[1,2];
        $on_error = sub { die $_[0]->message . " at $file line $line\n"; };
    }

    my $client = Beekeeper::Client->instance;
    my $guard = $client->__use_authorization_token('BKPR_ADMIN');
    my $timeout = delete $args{'timeout'};

    $client->call_remote_async(
        method     => '_bkpr.logtail.tail',
        params     => \%args,
        timeout    => $timeout,
        on_success => $on_success,
        on_error   => $on_error,
    );
}

1;

__END__

=pod

=encoding utf8

=head1 NAME

Beekeeper::Service::LogTail - Buffer log entries

=head1 VERSION

Version 0.09

=head1 SYNOPSIS

  my $entries = Beekeeper::Service::LogTail->tail(
      count   => 100,
      level   => LOG_DEBUG,
      host    => '.*',
      pool    => '.*',
      service => 'myapp-foo',
      message => 'Use of uninitialized value',
      after   =>  now() - 10,
  );
  
  print "$_->{message}\n" foreach @$entries;
  
  Beekeeper::Service::LogTail->tail_async(
      count      => 100,
      on_success => sub {
          my ($entries) = @_;
          print "$_->{message}\n" foreach @$entries;
      },
      on_error => sub {
          my ($error) = @_;
          die $error->message;
      },
  );

=head1 DESCRIPTION



( run in 2.122 seconds using v1.01-cache-2.11-cpan-364913b4093 )