@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)]
}]
*/
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
Log messages with a Logger.Severity.Error
severity level and using console.error
.
Parameter | Type | Default | Description |
---|
messages | * | | The messages to log |
Log messages with a Logger.Severity.Info
severity level and using console.info
.
Parameter | Type | Default | Description |
---|
messages | * | | The messages to log |
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
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 |