A structured logger for Fluentd (D)
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
example
html/candydoc
src/fluent
.gitignore
LICENSE.txt
README.markdown
dub.json
posix.mak

README.markdown

Fluent logger

A structured event logger for Fluent

Usage

struct Event
{
    string text = "This is D";
    long   id   = 0;
}

// ...
import fluent.logger;

// Create a configuration
FluentLogger.Configuration conf;

// Create a logger with tag prefix and configuration
auto logger = new FluentLogger("app", conf);

// Write Event object with "test" tag to Fluentd 
logger.post("test", Event());

// Disconnect and perform cleanup
logger.close(); // Or destroy(logger);

In this result, Fluentd accepts {"text":"This is D","id":0} at "app.test" tag.

Sharing logger

Currently, FluentLogger is not marked as shared. So, if you share a logger object accross threads, please use __gshared.

Build

The library: dub build
Documentation: dub build --build=docs
Examples:
   Single-threaded: dub build --config=post-example
   Multi-threaded: dub build --config=post-mt-example

Debug logging:

Limited logging to stdout can be enabled by adding FluentLogger to debugVersions in your project's dub.json:
"debugVersions": ["FluentLogger"],

TODO

  • std.log support after Phobos accepts std.log
  • Add some qualifiers (@safe, nothrow, shared, etc..)
  • Windows support

Link

Copyright

AuthorMasahiro Nakagawa
CopyrightCopyright (c) 2012- Masahiro Nakagawa
LicenseApache License, Version 2.0