uol
TypeScript icon, indicating that this package has built-in type declarations

0.2.0 • Public • Published

Uol

Uol is a lightweight logging utility taking advantage on Node.js streams.

Installation

$ npm install uol

Usage

Example

import * as uol from 'uol';

// Creating a logger
let logger = new uol.Logger({
  // Predefined levels
  levels: uol.StdLevels.Npm,

  // Custom levels
  levels: ['emergency', 'error', 'warning', 'info', 'debug']
}).init(); // <- init() returns an object with better typing, but is otherwise a no-op

// Declaring messages (with the custom levels defined above)
logger.emergency('Emergency message');
logger.error('Error message');
logger.warning('Warning message');
logger.info('Info message');
logger.debug('Debug message');

// Creating child loggers
let child = logger.getChild('foo');
let subchild = child.getChild('bar');

subchild.debug('...');

// Displaying and saving logs
let transport = logger
  .use(uol.format('%(date) [%(LevelName)] %(message)'))
  .use(uol.filter({ level: 'warning', namespace: 'foo.bar' }))
  .pipe(new uol.ConcatTransformer())
  .pipe(fs.createWriteStream('out.log'));
  // or
  .pipe(process.stderr);

Waiting for logs to be written

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

logger.end();

Reference

Levels

  • StdLevels.Npm – npm logging levels (error, warn, info, http, verbose, debug, silly)
  • StdLevels.Python – Python logging module levels (critical, error, warning, info, debug)
  • StdLevels.Syslog – RFC 5424 levels (emerg, alert, crit, error, warning, notice, info, debug)

Transformers

  • filter({ level, namespace }) – Filters events depending on their level and namespace.
  • format(format) – Formats events using a defined format.
  • ConcatTransformer() – Joins all events (assuming they are strings) with an EOL character.

Readme

Keywords

none

Package Sidebar

Install

npm i uol

Weekly Downloads

1

Version

0.2.0

License

MIT

Unpacked Size

16 kB

Total Files

12

Last publish

Collaborators

  • slietar