Node Logging Libraries

Updated Sep 06, 2021#node#libs#lists

Getting started with JavaScript and logging your first line using console.log is quick, but when you take your code to production, there’s much more you should consider about logging:

  • Output formats (string, json, files, streams, etc.)
  • Different log levels for different log categories
  • Multiple configurable writable streams
  • Interactive and regular modes
  • String interpolation support
  • Configurable log rolling based on file size or date

Following are notable libraries to write logs in Node applications.

  • winston - Designed to be a simple and universal logging library with support for multiple transports. A transport is essentially a storage device for your logs.
  • bunyan - Simple and fast JSON logging library for node.js services, extensible streams system for controlling where log records go.
  • morgan - HTTP request logger middleware for Node.
  • debug - Tiny JavaScript debugging utility modelled after Node.js core’s debugging technique. Works in Node.js and web browsers
  • signale - Can be used for logging purposes, status reporting, as well as for handling the output rendering process of other node modules and applications.
  • log4js - A conversion of the log4js framework to work with node. I started out just stripping out the browser-specific code and tidying up some of the javascript to work better in node
  • loglevel - Minimal lightweight logging for JavaScript, adding reliable log level methods to wrap any available console.log methods
  • npmlog - The logger util that npm uses, very basic, supports custom levels and colored output, all logs written to stderr by default.