looger

Simple logger

Usage no npm install needed!

<script type="module">
  import looger from 'https://cdn.skypack.dev/looger';
</script>

README

looger

A simple logging class with no dependencies. Requires Node v8.0.0 or higher.

Build Status NPM version

Installation

npm install looger

Usage

looger comes prewired to log to stdout. If you want to do something else, you can either pass in a writer object or subclass Looger and override the write() method.

// for TypeScript, import with this:
// import Looger = require('looger');
const Looger = require('looger');
const looger = new Looger();
looger.info('hello world'); // 09:52:27.338 info: hello world

Available logging methods:

looger.trace(/* any number of objects */);
looger.debug(/* any number of objects */);
looger.info(/* any number of objects */);
looger.warn(/* any number of objects */);
looger.error(/* any number of objects */);

if (looger.isDebugEnabled()) {
  // expensive debug logging here
}

Integration with Express middleware:

const express = require('express');
const app = express();

app.use(logger.middleware({
    userAgent: false, // set to true to log user agent
    requestSize: false, // set to true to log request size
    responseSize: false, // set to true to log request size
    response4xxLevel: 'info', // log 4xx responses at this level
    response5xxLevel: 'info', // log 5xx responses at this level
}));

// logged for every incoming request:
// debug: GET / HTTP/1.1
// logged for every outgoing response:
// info: 5ms 200 GET / HTTP/1.1

Options

{
  // colorize log levels and output	
  colorize: Boolean, // default is true
  // log level
  level: 'trace' | 'debug' | 'info' | 'warn' | 'error', //default is "info"
  // how deep to print nested objects
  maxDepth: Number, // default is 3
  // how to format the time
  timestamps: Boolean | 'simple', // default is "simple"
  // where to write log lines
  writer: { write: (str) => {} } // default is process.stdout
}

For normal development, these options are recommended:

const looger = new Looger({
  colorize: true,
  level: 'debug',
  recursionDepth: 5,
  timestamps: 'simple'
});