Bunyan: A logging tool for node.js

Motivation

We are all familiar with using console.log to log out information for debugging purposes. However, as the application grows, console.log gets littered everywhere. Also, formatting messaging is done manually.

Introducing bunyan

A nice little logging tool that comes with time stamp, process ID and machine name formatting out of the box.
Check out bunyan here.

Using bunyan

  1. Install the package

npm install bunyan

2. Create a logger instance

const log = bunyan.createLogger({
    name: 'my-logger',
    serializers: bunyan.stdSerializers
});
module.exports = log;

3. Use the logging methods

There are several methods for logging such as info, warn, error, debug.

const logger = require(path/to/logger');
const port = process.env.PORT || 3000;
logger.info(`Express is running on port ${port}`);

4. View output

[2018-10-29T10:04:08.045Z] INFO: my-logger/20194 on : Express is running on port 3000

Optional: Pretty print

Bunyan has a useful tool for pretty printing the logs into a more human readable format via CLI:

node index.js | ./node_modules/.bin/bunyan

Closing

Bunyan is a nice tool that comes with great formatting for logging in production. It is easy to get started with, however customising its behaviour is not easy as the documentation isn't well organised to facilitate this.