@miroculus/log v3.1.1
@miroculus/log
Simple logging library for Node.js intended to be used internally at Miroculus.
Installation
npm i @miroculus/logGetting Started
By default, the library will log everything to the console, including the log level:
const log = require('@miroculus/log')
log.info('some message')
// [INFO] some messageLogging Levels
The library includes the following logging levels:
criticalerrorwarninfodebug
And you can enable them using the function setLevel, that receives the logging
level you which to enable, and will disable all the levels it has underneath.
e.g.:
// This will disable the `info` and `debug` logging levels.
log.setLevel('warn')Scoped Logging
You can create an scoped logger, which will include the scope when logging it to the console. e.g.:
const { createLog } = require('@miroculus/log')
const log = createLog('my-library')
log.info('another message')
// [INFO][my-library] another messageMultiple scopes can also be used:
const { createLog } = require('@miroculus/log')
const log = createLog('my-library', 'sub-module')
log.info('another message')
// [INFO][my-library][sub-module] another messageLogging Triggers
If you want to execute some callback everytime a log is emitted, you can listen
to the event log, e.g:
const log = require('@miroculus/log')
log.on('log', ({ level, scopes, args, time }) => {
// level === 'error'
// scopes === []
// time === Date.now()
const [err] = args
// do wathever you like with the logged err object
})
log.error(new Error('some error'))A more complex example can be found at
examples/sentry.jswhich shows how to do a very simple implementation with Sentry.
Default console logger
By default, the logger will log everything to the console, but this functionality can be disabled by running the following on the base logger:
const log = require('@miroculus/log')
log.disableDefaultConsoleLogger()
// To re-enable the default listener:
log.enableDefaultConsoleLogger()This is useful to be able to define a custom console logger using the Logging Triggers, or disable the console logger altogether.