flogging

0.3.0 • Public • Published

Fun, furious, functional logging - flogging.js

This library is intended to make logging in functional programming a bit easier. It should play nicely with Ramda.

Please note: This library should still be considered experimental and functions may change at any time.

You are encouraged to read the source and use included libraries directly. Consider this like a Mercury-inspired logging collection.

Installing

npm i flogging --save

Usage

flogging = require('flogging')

R = require('ramda')

log = flogging.start_console_text_stream(process.stdout)

Logs the message and returns the value like it wasn't even there (the logger that is, your values are safe).

lower = R.pipe(
	R.flip(R.divide(2)),
	log.info('Halfway there'),
	R.add(7)
)

what_it_is = lower(30)
// Sets `what_it_is` to 22.
// Prints `{"message": "Halfway there", "value": 15}` to the console.

It's good to clean up after yourself.

log.stop()

Object mode output

Use start_console_stream (note missing _text_) to output the logs to a Stream with objectMode: true.

concat_stream = require('concat-stream')

out_stream = concat_stream((array_of_log_objects) => console.log(array_of_log_objects))

log = flogging.start_console_stream(out_stream)

log.info('Super informational', 12)

log.stop()

I hope it is obvious that using concat-stream like this on all your logs is a bad idea.

License

MIT

Package Sidebar

Install

npm i flogging

Weekly Downloads

11

Version

0.3.0

License

MIT

Last publish

Collaborators

  • mattms