Init Logger in main.ts
Logger.init('WARN');
And use-it :)
Logger.d("Let's Go");
Logger.i("Let's Go",myObject);
Logger.w("Let's Go",true);
Logger.e("Let's Go");
Logger.table(["one","two","three"]);
enum LEVEL { | |
DEBUG = 1, INFO = 2, WARN = 3, ERROR = 99, SUCCESS = 100 | |
} | |
export class Logger { | |
private static _level: LEVEL = LEVEL.DEBUG; | |
public static init(level: string = "DEBUG"): void { | |
console.log("Initialisation Logger"); | |
Logger._level = LEVEL[level]; | |
if (!Logger._level) { | |
console.error(level + " is an invalid Log Level,Replace it in environment file by DEBUG,INFO,WARN or ERROR"); | |
} | |
} | |
public static d(...objects: any[]): void { | |
if (Logger.showTrace(LEVEL.DEBUG)) { | |
Logger.output(LEVEL.DEBUG, objects); | |
} | |
} | |
public static i(...objects: any[]): void { | |
if (Logger.showTrace(LEVEL.INFO)) { | |
Logger.output(LEVEL.INFO, objects); | |
} | |
} | |
public static w(...objects: any[]): void { | |
if (Logger.showTrace(LEVEL.WARN)) { | |
Logger.output(LEVEL.WARN, objects); | |
} | |
} | |
public static e(...objects: any[]): void { | |
Logger.output(LEVEL.ERROR, objects); | |
} | |
public static success(...objects: any[]): void { | |
Logger.output(LEVEL.SUCCESS, objects); | |
} | |
public static table(objects: any): void { | |
console.table(objects); | |
} | |
private static showTrace(level: LEVEL): boolean { | |
return this._level <= level | |
} | |
private static output(level: LEVEL, ...objects: any[]): void { | |
if (String(objects[0][0]) !== "[object Object]") { | |
let message = String(objects[0][0]); | |
objects[0].shift(); | |
Logger.outputWithObjects(level, message, objects[0]); | |
} else { // default | |
console.log("default"); | |
switch (level) { | |
case LEVEL.INFO: | |
console.info(objects); | |
break; | |
case LEVEL.WARN: | |
console.warn(objects); | |
break; | |
case LEVEL.ERROR: | |
console.error(objects); | |
break; | |
case LEVEL.DEBUG: | |
default: | |
console.debug(objects); | |
break; | |
} | |
} | |
} | |
private static outputWithObjects(level: LEVEL, message: string, ...objects: any[]): void { | |
switch (level) { | |
case LEVEL.INFO: | |
if (objects[0].length > 0) | |
console.log("%c[INFO] " + message + "\t", 'background: #FF0; color: #000', objects[0]); | |
else | |
console.log("%c[INFO] " + message + "\t", 'background: #FF0; color: #000'); | |
break; | |
case LEVEL.WARN: | |
if (objects[0].length > 0) | |
console.log("%c[WARN] " + message + "\t", 'background: #FA0; color: #000', objects[0]); | |
else | |
console.log("%c[WARN] " + message + "\t", 'background: #FA0; color: #000'); | |
break; | |
case LEVEL.ERROR: | |
if (objects[0].length > 0) | |
console.log("%c[ERROR] " + message + "\t", 'background: #F00; color: #FFF', objects[0]); | |
else | |
console.log("%c[ERROR] " + message + "\t", 'background: #F00; color: #FFF'); | |
break; | |
case LEVEL.SUCCESS: | |
if (objects[0].length > 0) | |
console.log("%c[SUCCESS] " + message + "\t", 'background: #bada55; color: #000', objects[0]); | |
else | |
console.log("%c[SUCCESS] " + message + "\t", 'background: #bada55; color: #000'); | |
break; | |
case LEVEL.DEBUG: | |
default: | |
if (objects[0].length > 0) | |
console.log("[DEBUG] " + message + "\t", objects[0]); | |
else | |
console.log("[DEBUG] " + message + "\t"); | |
break; | |
} | |
} | |
} |