30 lines
1.1 KiB
Markdown
30 lines
1.1 KiB
Markdown
|
# ln: The Natural Logger for Go
|
||
|
|
||
|
`ln` provides a simple interface to logging, and metrics, and
|
||
|
obviates the need to utilize purpose built metrics packages, like
|
||
|
`go-metrics` for simple use cases.
|
||
|
|
||
|
The design of `ln` centers around the idea of key-value pairs, which
|
||
|
can be interpreted on the fly, but "Filters" to do things such as
|
||
|
aggregated metrics, and report said metrics to, say Librato, or
|
||
|
statsd.
|
||
|
|
||
|
"Filters" are like WSGI, or Rack Middleware. They are run "top down"
|
||
|
and can abort an emitted log's output at any time, or continue to let
|
||
|
it through the chain. However, the interface is slightly different
|
||
|
than that. Rather than encapsulating the chain with partial function
|
||
|
application, we utilize a simpler method, namely, each plugin defines
|
||
|
an `Apply` function, which takes as an argument the log event, and
|
||
|
performs the work of the plugin, only if the Plugin "Applies" to this
|
||
|
log event.
|
||
|
|
||
|
If `Apply` returns `false`, the iteration through the rest of the
|
||
|
filters is aborted, and the log is dropped from further processing.
|
||
|
|
||
|
## Current Status: Initial Development / Concept
|
||
|
|
||
|
## Copyright
|
||
|
|
||
|
(c) 2015, Andrew Gwozdziewycz, BSD Licensed. See LICENSE for more
|
||
|
info.
|