Go to file
2018-02-25 15:07:14 +01:00
debian add missing deep 2018-02-25 15:07:14 +01:00
lib/Log/Dispatch Imported Upstream version 1.3.1 2018-02-25 14:27:18 +01:00
t Imported Upstream version 1.3.1 2018-02-25 14:27:18 +01:00
Build.PL Imported Upstream version 1.3.1 2018-02-25 14:27:18 +01:00
Changes Imported Upstream version 1.3.1 2018-02-25 14:27:18 +01:00
cpanfile Imported Upstream version 1.3.1 2018-02-25 14:27:18 +01:00
LICENSE Imported Upstream version 1.3.1 2018-02-25 14:27:18 +01:00
MANIFEST Imported Upstream version 1.3.1 2018-02-25 14:27:18 +01:00
META.json Imported Upstream version 1.3.1 2018-02-25 14:27:18 +01:00
META.yml Imported Upstream version 1.3.1 2018-02-25 14:27:18 +01:00
minil.toml Imported Upstream version 1.3.1 2018-02-25 14:27:18 +01:00
README.md Imported Upstream version 1.3.1 2018-02-25 14:27:18 +01:00

Build Status

NAME

Log::Dispatch::Gelf - Log::Dispatch plugin for Graylog's GELF format.

SYNOPSIS

use Log::Dispatch;

my $sender = ... # e.g. RabbitMQ queue.
my $log = Log::Dispatch->new(
    outputs => [ 
        #some custom sender
        [
            'Gelf',
            min_level         => 'debug',
            additional_fields => { facility => __FILE__ },
            send_sub          => sub { $sender->send($_[0]) },
        ],
        #or send to graylog via TCP/UDP socket
        [
            'Gelf',
            min_level         => 'debug',
            additional_fields => { facility => __FILE__ },
            socket            => {
                host     => 'graylog.server',
                port     => 21234,
                protocol => 'tcp',
            }
        ]
    ],
);
$log->info('It works');

$log->log(
    level             => 'info',
    message           => "It works\nMore details.",
    additional_fields => { test => 1 }
);

DESCRIPTION

Log::Dispatch::Gelf is a Log::Dispatch plugin which formats the log message according to Graylog's GELF Format version 1.1. It supports sending via a socket (TCP or UDP) or a user provided sender.

CONSTRUCTOR

The constructor takes the following parameters in addition to the standard parameters documented in Log::Dispatch::Output:

  • additional_fields

    optional hashref of additional fields of the gelf message (no need to prefix them with _, the prefixing is done automatically).

  • chunked

    optional scalar. An integer specifying the chunk size or the special string values 'lan' or 'wan' corresponding to 8154 or 1420 respectively. A zero chunk size means no chunking will be applied.

    Chunking is only applicable to UDP connections.

  • compress

    optional scalar. If a true value the message will be gzipped with IO::Compress::Gzip.

  • send_sub

    mandatory sub for sending the message to graylog. It is triggered after the gelf message is generated.

  • socket

    optional hashref create tcp or udp (default behavior) socket and set send_sub to sending via socket

METHODS

log->log( level => , message => $, additional_fields => \% )

In addition to the corresponding method in Log::Dispatch::Output this subclassed method takes an optional hashref of additional_fields for the gelf message. As in the corresponding parameter on the constructor there is no need to prefix them with an _. If the same key appears in both the constructor's and method's additional_fields then the method's value will take precedence overriding the constructor's value for the current call.

The subclassed log method is still called with all parameters passed on.

LICENSE

Copyright (C) Avast Software.

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

AUTHOR

Miroslav Tynovsky tynovsky@avast.com