uol

Lightweight logging utility based on Node.js streams

Usage no npm install needed!

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

README

Uol

Uol is a lightweight logging utility heavily based on Node.js streams.

Usage

Example

let uol = require('uol');

let logger = new uol.Logger({
  levels: uol.Levels.Npm
});

let transport = logger
  .use(uol.Layers.colorize())
  .use(async (data, logger) => {
    return `${data.date.toISOString()} ${data.colorize(`[${data.levelName.toUpperCase()}]`)} ${data.message}`;
  });
  .pipe(new uol.Transport.Concat())
  .pipe(fs.createWriteStream('out.log'));

// returns an array of all messages up until now
let messages = await logger.concat();

Waiting for logs to be written

transport.on('finish', () => {
  // done
});

logger.end();

Reference

Levels

  • Levels.Npm – npm logging levels (error, warn, info, http, verbose, debug, silly)
  • Levels.Syslog – RFC5424 levels (emerg, alert, crit, error, warning, notice, info, debug)

Layers

  • new Layer.Base(handler, logger) – Internal class used for chaining.

  • Layer.colorize(styles) – Adds a colorize() method to each message object depending on its level and the provided styles. Built-in levels have corresponding built-in styles.

  • Layer.filterLevel(minLevel) – Removes messages with a level lower than minLevel.

Transports

  • new Transport.Console() – Individually prints messages using methods of the console object.
  • new Transport.Concat() – Joins all messages with an EOL character.