An example using Thrift and Scribe (see here for more details about building the perl scribe client).
The example program reads one line at a time from stdin and sends to a scribe instance running locally on port 1465.
#! /usr/bin/perl use Scribe::Thrift::scribe; use Thrift::Socket; use Thrift::FramedTransport; use Thrift::BinaryProtocol; use strict; use warnings; my $host = 'localhost'; my $port = 1465; my $cat = $ARGV[0] || 'test'; my $socket = Thrift::Socket->new($host, $port); my $transport = Thrift::FramedTransport->new($socket); my $proto = Thrift::BinaryProtocol->new($transport); my $client = Scribe::Thrift::scribeClient->new($proto, $proto); my $le = Scribe::Thrift::LogEntry->new({ category => $cat }); $transport->open(); while (my $line = <>) { $le->message($line); my $result = $client->Log([ $le ]); if ($result == Scribe::Thrift::ResultCode::TRY_LATER) { print STDERR "TRY_LATER\n"; } elsif ($result != Scribe::Thrift::ResultCode::OK) { print STDERR "Unknown result code: $result\n"; } } $transport->close(); |