Log::Log4perl::Appender::Graylog - Log dispatcher writing to udp Graylog server
version 0.01
use Log::Log4perl::Appender::Graylog; my $appender = Log::Log4perl::Appender::Graylog->new( PeerAddr => "glog.foo.com", PeerPort => 12209, ); $appender->log(message => "Log me\n");
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.
Log::Log4perl::Appender::Graylog; - Log to a Graylog server
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 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.
Brandon "Dimentox Travanti" Husbands <xotmid@gmail.com>
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.
To install Log::Log4perl::Appender::Graylog, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Log::Log4perl::Appender::Graylog
CPAN shell
perl -MCPAN -e shell install Log::Log4perl::Appender::Graylog
For more information on module installation, please visit the detailed CPAN module installation guide.