bunlogger v3.0.6
bunlogger
express logging middlewares built on bunyan and rotatelog-stream
Installation
$ npm install bunlogger --saveFeatures
app.use(logger.connect())middleware will populate thereq.log, which is actually a child of the bunyan logger, simplyreq.log.info('...')will share the samecor_idin theaccess loganderror log.req.log.fatal(),req.log.error()will log error intoerror logfile separated fromaccess log.app.use(logger.onError())middleware will skip error which was logged byreq.log.fatal(),req.log.error()orreq.log.warn(), so no duplicated error logging. In addition, error with no status or status >= 500, will be logged inerror level. Error with status between 400~499, will be logged inwarn level.elapsedshow the time spent in thisreq.Integrate with rotatelog-stream for rotating logs to files.
See logging on the console in developing stage.
Quick Start
express
const express = require('express');
const AppLogger = require('bunlogger');
const logDir = require('path').join(__dirname, 'log');
var app = express();
app.log = new AppLogger({dev: true, logDir});populate req.log and log all accesses
app.use(app.log.connect());Catch express next(err) for logging, but skip if req.log got called above warn level.
app.use(app.log.onError());log directory created and bunlogger.log, bunlogger-error.log created.
Finally, render req.cor_id in the final error handler, so the customer can contact you with cor_id for help.
Create logger
logger is using rotatelog-stream for rotating logs.
const Logger = require('..').Logger;
const join = require('path').join;
var log = new Logger({logDir: join(__dirname, 'log')});
log.info('hi info');
log.warn('hi warn');
log.error('hi error');Print Error
A handy tool to replace console.error(err).
const printErr = require('bunlogger').printErr;
try {
new NotExist();
} catch (er) {
printErr(er)
}cli
$ DEBUG=* node bin/wwwOptions
- name: {String},
- logDir: 'path/to/log/directory' - directory to save log files
- keep: {Number} - how many log files keep. See rotatelog-stream
- maxsize: {Number} - max filesize allowed. See rotatelog-stream
- dev: {Boolean} - Pipe logs to
process.stdoutfor development, so we can see how logging file looks like in console. streams: {Array} - additional streams for Bunyan