import * as winston from "winston"; declare module 'winston' { interface LoggerInstance { logFileName: string; logFilePath: string; } } export const winstonSettings = { transports: [ new winston.transports.Console({ level: process.env.NODE_ENV == "production" ? "info" : 'silly', handleExceptions: true, json: false, colorize: true, timestamp: function () { return (new Date()).toLocaleString(); }, label: "innerLabel", formatter: (options) => { // Return string will be passed to logger. return options.timestamp() + '[' + winston['config']['colorize'](options.level, options.level.toUpperCase()) + '] ' + (undefined !== options.message ? options.message : '') + (options.meta && Object.keys(options.meta).length ? '\n\t' + JSON.stringify(options.meta) : '' ); }, debugStdout: true }) ], exitOnError: false }; export const Logger = new winston.Logger(winstonSettings);