Best Logging library in the Node JS

Javascript logging

What is Logging?

It helps developers identify and diagnose issues or bugs in their code by providing a detailed record of what happened during program execution. By analyzing log messages, developers can trace the flow of execution, pinpoint the source of errors, and understand the sequence of events leading up to a problem. Logging typically involves the generation of log messages, which consist of text-based records containing relevant information about an event or activity. These messages are then written to log files or sent to a centralized logging system for storage and further analysis. Log messages often include timestamps, severity levels, contextual information, and details specific to the event being logged.

We can use the following node library to implement the logs in the javascript application:

1: Winston:

Winston is the logging library, which support multiple transport. Transport is the storage for logs. We can also configure different logging level. Winston supports log formatting.


npm install winston


The recommended way to use winston is to create your own logger. The simplest way to do this is using winston.createLogger:

const winston = require('winston');

const logger = winston.createLogger({
  level: 'info',
  format: winston.format.json(),
  defaultMeta: { service: 'user-service' },
  transports: [
    // - Write all logs with importance level of `error` or less to `error.log`
    // - Write all logs with importance level of `info` or less to `combined.log`
    new winston.transports.File({ filename: 'error.log', level: 'error' }),
    new winston.transports.File({ filename: 'combined.log' }),

// If we're not in production then log to the `console` with the format:
// `${info.level}: ${info.message} JSON.stringify({ }) `
if (process.env.NODE_ENV !== 'production') {
  logger.add(new winston.transports.Console({
    format: winston.format.simple(),

More detail:

2: Loglevel

Minimal lightweight simple logging for JavaScript. loglevel replaces console.log() and friends with level-based logging and filtering, with none of console’s downsides.


npm install loglevel

var log = require('loglevel');
log.warn("unreasonably simple");

More detail:

3: Npmlog

This logger is very basic. It does the logging for npm. It supports custom levels and colored output.


npm install npmlog --save


var log = require('npmlog')'fyi', 'I have a kitty cat: %j', myKittyCat)var log = require('npmlog')

More detail:

Leave a Comment

Your email address will not be published. Required fields are marked *