Very simple wrapper for creating Bunyan loggers from a common base.
- Creates logging that uses a prefix and module approach.
- Automatically create the console logger using
Bunyan-pretty-stream
module.
I kept doing this in project after project, so decided to make it a module. Not much more to it than that. Bunyan is great especially when you use it with LogStash - basically replaces Splunk. But sometimes you need console printing.
npm install bunyan-log-helper
const Logger = require('bunyan-log-helper');
const logOpts = {
prefix: 'myapp',
level: 'debug',
outputStreams: [{
type: 'rotating-file',
period: '1d',
count: 3,
level: 'info',
path: path.resolve(path.join(__dirname, '../../logs/dataload.log')),
}],
console: true
}
const _Logger = new Logger(logOpts);
const logger = _Logger.logger('module-1');
logger.info('hello world');
Automatically configures the console logger if enabled.
Also writes logs as units within a main application. Notice the 'unit=module1'.
[2017-03-29T08:37:44.371Z] INFO: myApp/6416 on localhost: Hello World (unit=module1)
The benefit of using the child logger, is you can use hierarchical logging, so you can filter logs to applications and units within those applications.
Example should go here
Pass the logging settings to the class constructor.
Setting | Type | Description |
---|---|---|
level | String | Debug/Info/Warn etc. |
prefix | String | Log name will be prefixed with this. Use your main app name. |
outputStreams | Object[] | Array of output streams (not including console) |
console | Boolean | Whether to enable console logging |
n.b level passed for a particular output stream will override top level.
// base settings.js
module.exports = {
level: 'debug',
outputStreams: [{
type: 'rotating-file',
period: '1d',
count: 3,
level: 'info',
path: path.resolve(path.join(__dirname, '../../logs/dataload.log')),
}],
console: true
}
Package | Reason |
---|---|
bunyan | Logging |
bunyan-prettystream | Logging to console |
Package | Reason |
---|---|
eslint | Airbnb Stylguide for coding |
mocha | Testing |
should | Testing assertions |
Fork it and fix, or submit an issue. Otherwise star it on Github so I know you're using it.
Submit an issue or better yet a pull-request on the Github repository.
MIT License