David Zurborg

NAME

Dancer2::Logger::Radis - Dancer2 logger engine for Log::Radis

VERSION

version 0.002

DESCRIPTION

Radis (from Radio and Redis) is a concept of caching GELF messages in a Redis DB. Redis provides a reliable queue via the (B)RPOPLPUSH command. See http://redis.io/commands/rpoplpush for more information about that mechanism.

The implementation of a Radis client is quite simple: just push a GELF message with the LPUSH command onto the queue. A collector fetches the messages from the queue and inserts them into a Graylog2 server, for example.

The current perl implementation is Log::Radis. This module is a simple wrapper for it.

ATTRIBUTES

server

The Redis DB server we should connect to. Defaults to localhost:6379.

See "server" in Log::Radis for allowed values.

reconnect

Re-try connecting to the Redis DB up to reconnect seconds. 0 disables auto-reconnect.

See "reconnect" in Log::Radis for more information.

every

Re-try connection to the Redis DB every every milliseconds.

See "every" in Log::Radis for more information.

queue

The name of the list, which gelf streams are pushed to. Defaults to graylog-radis:queue.

See "queue" in Log::Radis for more information.

METHODS

log

    log($level, $message, %extras);

Nothing special, just like you'd expect.

CONFIGURATION

    logger: 'Radis'
    engines:
      logger:
        Radis:
          server: 'redis-server:6379'
          queue: 'my-own-radis-queue'

For allowed options see "ATTRIBUTES".

GELF MESSAGE

The log message cannot be formatted like described at "log_format" in Dancer2::Core::Role::Logger. Instead, the additioal values are passed into the GELF message directly. Currently this mapping is hard-coded into this module:

    Dancer2 variable               | GELF param
    -------------------------------+-----------
    $$                             | _pid
    $dsl->app_name                 | _source
    $request->id                   | _http_id
    $request->user                 | _http_user
    $request->address              | _http_client
    $request->method               | _http_method
    $request->path                 | _http_path
    $request->protocol             | _http_proto
    $request->header('referer')    | _http_referer
    $request->header('user_agent') | _http_useragent
    $request->session->id          | _session_id

This may change in future.

BUGS

Please report any bugs or feature requests on the bugtracker website https://github.com/zurborg/libdancer2-logger-radis-perl/issues

When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.

AUTHOR

David Zurborg <zurborg@cpan.org>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2016 by David Zurborg.

This is free software, licensed under:

  The ISC License