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
- 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.