NAME

   Dancer2::Logger::Fluent - Dancer2 logger engine for Fluent::Logger

VERSION

   version 0.06

SYNOPSIS

     use Dancer2::Logger::Fluent;

DESCRIPTION

   Implements a structured event logger for Fluent via Fluent::Logger.

   When a connection to the fluentd agent can't be established, messages
   are "queued" internally. These messages will be flushed upon subsequent
   calls to log(), as soon as a connection is established.

METHODS

log($level, $message)

   Writes the log message to Fluent.

CONFIGURATION

   The setting logger should be set to Fluent in order to use this logging
   engine in a Dancer2 application.

   Below is a simple sample configuration:

     logger: "Fluent"

     engines:
       logger:
         Fluent:
           tag_prefix: "myapp"
           host: "127.0.0.1"
           port: 24224

   The full list of allowed options are as follows:

   tag_prefix

     Tag prepended to every message, defaults to the configured appname
     or, if not defined, to the executable's basename.

   host

     Host running the fluentd agent, defaults to '127.0.0.1'.

   port

     Port listened by the fluentd agent, defaults to 24224.

   timeout

     Timeout in seconds, defaults to 3.0 as implemented in Fluent::Logger.

   socket

     Socket file location, defaults to undef as implemented in
     Fluent::Logger.

   prefer_integer

     Whether integer is preferred as cascaded to
     Data::MessagePack->prefer_integer. Defaults to 1.

   event_time

     Whether event timestamps (includes nanoseconds as supported by
     fluentd >= 0.14.0) will be included. Defaults to 0.

   buffer_limit

     Buffer size limit, defaults to 8388608 (8MB) as implemented in
     Fluent::Logger.

   buffer_overflow_handler

     Custom coderef to handle buffer overflow in the event of connection
     failure, to mitigate loss of data in the event of connection failure.

   truncate_buffer_at_overflow

     When truncate_buffer_at_overflow is true and pending buffer size is
     larger than buffer_limit, pending buffer will still be kept but last
     message will not be sent and will not be appended to the buffer.
     Defaults to 0.

MESSAGE FORMAT

   Messages to fluentd will be a hash containing the following:

     {
       env       => $environment,
       timestamp => $current_timestamp,
       host      => $hostname,
       level     => $level,
       message   => $message,
       pid       => $$
     }

AUTHOR

   Arnold Tan Casis <[email protected]>

COPYRIGHT

   Copyright 2017- Arnold Tan Casis

LICENSE

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

SEE ALSO

   See Dancer2 for details about logging in route handlers.

   See http://fluent.github.com for details on fluentd itself.