import * as plugins from "./smartlog.plugins"; export type TLogLevel = | "error" | "warn" | "info" | "verbose" | "debug" | "silly"; export class Smartlog { private winstonInstance = new plugins.winston.createLogger({ level: 'silly', format: plugins.winston.format.json() }) // ============ // Logger Setup // ============ /** * enables console logging */ enableConsole() { this.winstonInstance.add(new plugins.winston.transports.Console()); } /** * set a minimum serverity level to log * @param levelArg */ level (levelArg: TLogLevel) { this.winstonInstance.level(levelArg); } // ============= // log functions // ============= /** * log stuff * @param logLevelArg * @param logMessageArg */ log(logLevelArg: TLogLevel, logMessageArg: string) { this.winstonInstance.log(logLevelArg, logMessageArg) } silly(logMessageArg: string) { this.log('silly', logMessageArg) } debug(logMessageArg) { this.log('debug', logMessageArg) } info(logMessageArg: string) { this.log('info', logMessageArg) } warn(logMessageArg) { this.log('warn', logMessageArg) } error(logMessageArg) { this.log('error', logMessageArg) } }