protontype
Version:
A simple REST framework make in TypeScript
46 lines (42 loc) • 1.71 kB
text/typescript
import { LoggerConfig } from '../';
import winston from 'winston';
export class Logger {
/**
* Logger instance.
* @see {@link https://github.com/winstonjs/winston#instantiating-your-own-logger}
*/
public static instance: winston.LoggerInstance = new winston.Logger({
transports: [
new winston.transports.Console({ level: "info" })
]
});
public static createLogger(config: LoggerConfig): winston.LoggerInstance {
if (config) {
let configuredTransports: winston.TransportInstance[] = [];
if (config.transports) {
config.transports.forEach(transport => {
switch (transport.type.toLowerCase()) {
case "file":
configuredTransports.push(new winston.transports.File(transport.options));
break;
case "dailyfile":
configuredTransports.push(new winston.transports.DailyRotateFile(transport.options));
break;
case "console":
default:
configuredTransports.push(new winston.transports.Console(transport.options));
break;
}
});
}
if (config.enabled) {
Logger.instance = new winston.Logger({
transports: configuredTransports
});
} else {
Logger.instance = new winston.Logger({});
}
}
return Logger.instance;
}
}