github.com/grafov/kiwi (go): Package kiwi is a library with an odd logic that log your application' data in its own strange way.  WIP. API and features is subject of changes. Use it carefully!  Features briefly:  simple format with explicit key for each log message (*logfmt* like) - for high readability by humans  JSON format that so liked by machines  ability to define own custom format of the output  there are not nailed levels, not hardcoded fields in the format  output dynamic filtering (change log verbosity on the fly)  can keep context of application  it fast enough and careful about memory allocs  Key feature of `kiwi` logger is dynamic filtering of incoming records. Instead of checking severety level for decide about pass or not the record to the output, `kiwi` passes all records to *all* the outputs (they called *sinks* in `kiwi` terminology). But before actual writing each record checked with a set of filters. Each sink has its own filter set. It takes into account record keys, values, ranges of values. So each sink decides pass the record to a writer or filter it out. Also any pairs in the record may be hidden: so different sinks may display different parts of the same record. Other effect is: any record may be written to any number of outputs.
Keywords: context|dynamic-filtering|golang|kiwi-logger|lib|library|logfmt|logger|logging|strange|structured-logging