Log-Dispatch-Message-Passing
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
lib/Log/Dispatch/Message/Passing.pm view on Meta::CPAN
package Log::Dispatch::Message::Passing;
use base qw(Log::Dispatch::Output);
use warnings;
use strict;
use Scalar::Util qw/ blessed /;
use Carp qw/ confess /;
our $VERSION = '0.009';
sub new {
my ($class, %arg) = @_;
confess("Need an 'output' argument") unless $arg{output};
my $output = $arg{output};
confess("output => $output must be an object which can ->consume")
unless blessed($output) && $output->can('consume');
my $self = { output => $output };
bless $self => $class;
# this is our duty as a well-behaved Log::Dispatch plugin
$self->_basic_init(%arg);
return $self;
}
sub log_message {
my ($self, %p) = @_;
$self->{output}->consume({%p});
}
=head1 NAME
Log::Dispatch::Message::Passing - log events to Message::Passing
=head1 SYNOPSIS
In your application code:
use Log::Dispatch;
use Log::Dispatch::Message::Passing;
use Message::Passing::Filter::Encoder::JSON;
use Message::Passing::Output::ZeroMQ;
my $log = Log::Dispatch->new;
$log->add(Log::Dispatch::Message::Passing->new(
name => 'myapp_aggregate_log',
min_level => 'debug',
output => Message::Passing::Filter::Encoder::JSON->new(
output_to => Message::Passing::Output::ZeroMQ->new(
connect => 'tcp://192.168.0.1:5558',
),
),
));
$log->warn($_) for qw/ foo bar baz /;
On your central log server:
message-pass --input ZeroMQ --input_options '{"socket_bind":"tcp://*:5558"}' \
--output File --output_options '{"filename":"myapp_aggregate.log"}'
=head1 DESCRIPTION
This provides a L<Log::Dispatch> log output system that sends logged events to
L<Message::Passing>.
This allows you to use any of the Message::Passing outputs or filters
to process log events and send them across the network, and you can use
the toolkit to trivially construct a log aggregator.
=head1 METHODS
=head2 C<< new >>
my $table_log = Log::Dispatch::Message::Passing->new(\%arg);
This method constructs a new Log::Dispatch::Message::Passing output object.
view all matches for this distributionview release on metacpan - search on metacpan
( run in 0.401 second using v1.00-cache-2.02-grep-82fe00e-cpan-1925d2aa809 )