logro v0.1.16
:tada: logro

Handy logger impl.
Built on-top of bole to provide ready to use logging:
const log = require('logro').createLogger(__filename);
log.info('Just testing');It also comes with simple formatter for the CLI:
$ echo '{"foo":"bar","time":1560577967962}' | logrof
# 12:52:47 { foo: 'bar' }How it works?
By design, logro messages are sent to the stderr:
$ node main.js 2>&1 | logrof
# 1:22:37 INFO main.js { hostname: 'dev.local', pid: 62525, evt: 'Just testing' }Most methods receive a message and some data, otherwise an error with some data, etc.
Last argument is used as identity for the ongoing message, on all methods.
Quiet methods (derived from bole):
info(msg[, data[, guid]])— Just info; hidden on productiondebug(msg[, data[, guid]])— Debug info; shown during test onlywarn(msg[, error[, guid]])— Relax warnings; hidden from stdouterror(msg[, error[, guid]])— Regular/relax errors; not critical, hidden
If warn/error receives an instance of
Error, a proper failure/exception will be raised, respectively.
Loud methods:
failure(err[, type[, guid]])— Real warnings!exception(err[, msg[, data[, guid]]])— Fatal errors :bomb:
Both methods always print to the stdout during development to help, the default level is
info.
Log levels are set as follows:
process.env.NODE_ENV === 'production'— seterrorlevelprocess.env.NODE_ENV === 'test'— setdebuglevelprocess.env.REMOVE_LOG === 'true'— disable all logs
Formatting
Pipe your logs to logrof in order to give them some format, it will ignore non JSON objects from the stream.
Recognized fields are: ts, time, ns, name and level.
Options:
--quiet— Non JSON objects are not longer printed--no-color— Disable colors on formatting from output
Otherwise, the default output is JSON, always.
Public API
new Logro(name)andLogro.createLogger(name)— Creates a new logro instance,namecan be a filepath.Logro.setForbiddenFields(fromConfig)— List of fields to be ignored fromdataobjects; alsoLogro.clean()is affected by this.Logro.getExpressLogger()— Returns a middleware function for easy logging, it also setupreq.logas helper.Logro.getLogger(name)— Returns aboleinstance.Logro.format(message[, data[, now]])— Returns the message formatted for CLI usage:[timestamp] [message] (data is optional)Logro.logger(message)— Print formatted messages to the stdout.Logro.inspect(message)— Print formatted messages to the stdout; ignored ifprocess.env.NODE_ENV === 'test'Logro.clean(data[, fields])— Safely clone and remove fields from any given object, it also removes those set bysetForbiddenFields()calls.
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago