NAME

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

VERSION

    version 0.03

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 <atancasis@cpan.org>

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.

