import {Interfaces} from "./Interfaces"; export namespace Log { export class ConsoleLogger implements Interfaces.LoggerInterface { private mode: Interfaces.AppMode; constructor(mode: Interfaces.AppMode) { this.mode = mode; } debug(message) { if (this.mode.isEqualsTo(Interfaces.AppMode.DEV())) { console.log(`\x1b[30m\x1b[43m%s\x1b[0m[%s]: %s`, '[DEBUG]', this.getDate(), message); } } error(message) { console.log(`\x1b[30m\x1b[41m%s\x1b[0m[%s]: %s`, '[ERROR]', this.getDate(), message); } info(message) { console.log(`\x1b[32m\x1b[40m%s\x1b[0m[%s]: %s`, '[INFO ]', this.getDate(), message); } private getDate() { let date = (new Date); return date.toUTCString(); } } }