NAME

Log::Log4perl::Appender::Graylog - Log dispatcher writing to udp Graylog server

VERSION

version 1.11

SYNOPSIS

   use Log::Log4perl::Appender::Graylog;

   my $appender = Log::Log4perl::Appender::Graylog->new(
     PeerAddr => "glog.foo.com",
     PeerPort => 12209,
   );

   $appender->log(message => "Log me\n");

DESCRIPTION

This is a simple appender for writing to a graylog server. It relies on IO::Socket::INET. This sends in the 1.1 format. Hoever it does not gzip the message. There are plans to use the gzip method later.

NAME

Log::Log4perl::Appender::Graylog; - Log to a Graylog server

EXAMPLE

Write a server quickly using the IO::Socket: (based on https://docstore.mik.ua/orelly/perl/cookbook/ch17_06.htm)

use strict;
use IO::Socket;
my($sock, $oldmsg, $newmsg, $hisaddr, $hishost, $MAXLEN, $PORTNO);
$MAXLEN = 8192;
$PORTNO = 12201;
$sock = IO::Socket::INET->new(LocalPort => $PORTNO, Proto => 'udp')
    or die "socket: $@";
print "Awaiting UDP messages on port $PORTNO\n";
$oldmsg = "This is the starting message.";
while ($sock->recv($newmsg, $MAXLEN)) {
    my($port, $ipaddr) = sockaddr_in($sock->peername);
    $hishost = gethostbyaddr($ipaddr, AF_INET);
    print "Client $hishost said ``$newmsg''\n";
    $sock->send($oldmsg);
    $oldmsg = "[$hishost] $newmsg";
} 
die "recv: $!";

Start it and then run the following script as a client:

use Log::Log4perl qw(:easy);
my $conf = q{
        log4perl.category                  = WARN, Graylog
        log4perl.appender.Graylog           = Log::Log4perl::Appender::Graylog
        log4perl.appender.Graylog.PeerAddr  = localhost
        log4perl.appender.Graylog.PeerPort  = 12201
        log4perl.appender.Graylog.layout    = SimpleLayout
        
    };

Log::Log4perl->init( \$conf );

sleep(2);

for ( 1 .. 10 ) {
    ERROR("Quack!");
    sleep(5);
}

COPYRIGHT AND LICENSE

Copyright 2017 by Brandon "Dimentox Travanti" Husbands <xotmid@gmail.com>

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

AUTHOR

Brandon "Dimentox Travanti" Husbands <xotmid@gmail.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2017 by Brandon "Dimentox Travanti" Husbands.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.