@evokegroup/logger
TypeScript icon, indicating that this package has built-in type declarations

3.0.0 • Public • Published

@evokegroup/logger

Console logging based on severity.

Class: Logger

constructor(severity, { output, retain, onLog })

Parameter Type Default Description
severity Logger.Severity, number, string Logger.Severity.Disabled The maximum severity to output
output boolean true Output the messages to the console
retain Logger.Severity, number, string Logger.Severity.Disabled Message severity level to retain for later retrieval via getLogs()
onLog function A function to call whenever a message is logged regardless of severity

Example

const Logger = require('@evokegroup/logger');
function doSomethingWithLogs(log) {
  // All logged messages are passed to this function as they are logged.
  // example: log = {
  //   severity: 2,
  //   logged: true,
  //   date: '2021-02-07T16:43:32.233Z',
  //   messages: [
  //     'Doing something'
  //   ]
  // }
}
const logger = new Logger(Logger.Severity.Info, { output: true, retain: Logger.Severity.Error, onLog: doSomethingWithLogs});
logger.info('Doing something'); // logged to console
logger.debug('Data', { firstName: 'John', lastName: 'Doe' }); // not logged to console
logger.error('An error occurred', new Error('Bad data')); // logged to console
// do other stuff
doSomthingWithTheLog(logger.getLogs()); // Only errors are retained and returned

Properties

Property Type Access Description
severity Logger.Severity get The Logger.Severity level

Methods

getLogs(severity)

Get the logged messages

Parameter Type Default Description
severity Logger.Severity The retain severity The minimum severity level. If not given falls back on the retain severity level passed when the Logger was instantiated

Example

const Logger = require('@evokegroup/logger');
const logger = new Logger(Logger.Severity.Error, { retain: Logger.Severity.Debug });
logger.info('Doing something'); // not logged to console
logger.debug('Data', { firstName: 'John', lastName: 'Doe' }); // not logged to console
logger.error('An error occurred', new Error('Bad data')); // logged

const allRetainedLogs = logger.getLogs();
/*
  [{
    severity: 2, logged: false, date: '2021-02-07T16:43:32.233Z', messages: ['Doing something']
  }, {
    severity: 3, logged: false, date: '2021-02-07T16:43:32.233Z', messages: ['Data', { firstName: 'John', lastName: 'Doe' }]
  }, {
    severity: 0, logged: true, date: '2021-02-07T16:43:32.233Z', messages: ['An error occurred', Error: Bad data)]
  }]
*/

const noDebug = logger.getLogs(Logger.Severity.Info);
/*
  noDebug = [{
    severity: 2, logged: false, date: '2021-02-07T16:43:32.233Z', messages: ['Doing something']
  }, {
    severity: 0, logged: true, date: '2021-02-07T16:43:32.233Z', messages: ['An error occurred', Error: Bad data)]
  }]
*/

debug(message[, ...message])

Log messages with a Logger.Severity.Debug severity level and using console.debug.

Parameter Type Default Description
messages * The messages to log

Example

const Logger = require('@evokegroup/logger');

const logger_1 = new Logger(Logger.Severity.Debug);
logger_1.debug('Details', { firstName: 'John', lastName: 'Doe' });
// Expected output:
// Details
// { firstName: 'John', lastName: 'Doe' }

const logger_2 = new Logger(Logger.Severity.Error);
logger_2.debug('Details', { firstName: 'John', lastName: 'Doe' }); // This message will not be logged since the logger's maximum severity level is less than Logger.Severity.Debug

error(message[, ...message])

Log messages with a Logger.Severity.Error severity level and using console.error.

Parameter Type Default Description
messages * The messages to log

info(message[, ...message])

Log messages with a Logger.Severity.Info severity level and using console.info.

Parameter Type Default Description
messages * The messages to log

log(severity, message[, ...message])

Log messages

Parameter Type Default Description
severity Logger.Severity, number, string Logger.Severity.Disabled The message severity level
messages * The messages to log

Example

const Logger = require('@evokegroup/logger');

const logger = new Logger(Logger.Severity.Error);
logger.log(Logger.Severity.Error, 'Error');
// Expected output:
// Error

warn(message[, ...message])

Log messages with a Logger.Severity.Warning severity level and using console.warn.

Parameter Type Default Description
messages * The messages to log

Enumeration: Logger.Severity

Property Value
Disabled -1
Error 0
Warning 1
Info 2
Debug 3

Readme

Keywords

none

Package Sidebar

Install

npm i @evokegroup/logger

Weekly Downloads

1

Version

3.0.0

License

ISC

Unpacked Size

22.8 kB

Total Files

5

Last publish

Collaborators

  • ybevoke
  • jtsuyuki
  • evokejames
  • evoke-cjamodeo