1.0.0 • Published 6 years ago
mm-transport-logger v1.0.0
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