1.0.0 • Published 6 years ago

mm-transport-logger v1.0.0

Weekly downloads
-
License
ISC
Repository
bitbucket
Last release
6 years ago

Synopsis

A small JavaScript library to use as a logger. The logger uses transports and interceptors to transport and manipulate logs.

Code Example

// Alert everything that is logged
class AlertTransport implements LogTransport
{
    processLog(log: Log): Promise < boolean >
    {
        alert(log.message);
        return Promise.resolve(true);
    }
}

// Transform all logs to include the date
class DateInterceptor implements LogInterceptor
{
    intercept(log: Log): Promise < boolean >
    {
        let newLog = { ...log};
        let date = new Date().toDateString();
        newLog.message = date + ": " + newLog.message;
        return newLog;
    }
}

// Setup all transports that the logger will use
let transports: Array < LogTransport > = [new AlertTransport()];

// Setup all interceptors that the logger will use
// Interceptors are run in the order they are added
let interceptors: Array < LogInterceptor > = [new DateInterceptor()];

// Set the logLevel 
/*
    SILENT = 0,
    LOG = 1,
    DEBUG = 2,
    INFO = 3,
    WARN = 4,
    ERROR = 5
*/

let logLevel: number = 0;

// Set the config for the logger
let config: LogConfiguration = 
{
    logLevel: logLevel,
    transports: transports,
    interceptors: interceptors
};

// Create a logger
logger: Logger = new Logger(config);

// The config can be changed after a logger has been instantiated
logger.setConfig(config);

Motivation

The logger is intended to be lightweight and provide an easy way capture and process logs on a project by project basis

Installation

npm install git+https://swahilian:BKve9rupFKWyA3fUh5YT@bitbucket.org/mobile-mentor/logger.git

API Reference

setConfig(config:LogConfiguration): void
log(message:string,extra:object = {}): void
debug(message:string,extra:object = {}): void
info(message:string,extra:object = {}): void
warn(message:string,extra:object = {}): void
error(message:string,extra:object = {}): void

Tests

npm test

1.0.0

6 years ago