X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Futils%2FLogger.ts;h=95d5347da47f12f708f003e5a43df5d36a16ec19;hb=df645d8f4155cf4aa401603857f6a6784b5db871;hp=a558adad618f2d4291462744ea474392ffb3dff9;hpb=bc464bb1fb95c50a14b25478d35be76b7d8e5498;p=e-mobility-charging-stations-simulator.git diff --git a/src/utils/Logger.ts b/src/utils/Logger.ts index a558adad..95d5347d 100644 --- a/src/utils/Logger.ts +++ b/src/utils/Logger.ts @@ -1,44 +1,59 @@ -import { Console, File } from 'winston/lib/winston/transports'; +import type { Format } from 'logform'; import { Logger, createLogger, format, transport } from 'winston'; +import DailyRotateFile from 'winston-daily-rotate-file'; +import TransportType from 'winston/lib/winston/transports/index.js'; import Configuration from './Configuration'; -import DailyRotateFile from 'winston-daily-rotate-file'; import Utils from './Utils'; let transports: transport[]; if (Configuration.getLogRotate()) { const logMaxFiles = Configuration.getLogMaxFiles(); transports = [ - new DailyRotateFile({ filename: Utils.insertAt(Configuration.getLogErrorFile(), '-%DATE%', Configuration.getLogErrorFile().indexOf('.log')), level: 'error', maxFiles: logMaxFiles }), - new DailyRotateFile({ filename: Utils.insertAt(Configuration.getLogFile(), '-%DATE%', Configuration.getLogFile().indexOf('.log')), maxFiles: logMaxFiles }), + new DailyRotateFile({ + filename: Utils.insertAt( + Configuration.getLogErrorFile(), + '-%DATE%', + Configuration.getLogErrorFile().indexOf('.log') + ), + level: 'error', + maxFiles: logMaxFiles, + }), + new DailyRotateFile({ + filename: Utils.insertAt( + Configuration.getLogFile(), + '-%DATE%', + Configuration.getLogFile().indexOf('.log') + ), + maxFiles: logMaxFiles, + }), ]; } else { transports = [ - new File({ filename: Configuration.getLogErrorFile(), level: 'error' }), - new File({ filename: Configuration.getLogFile() }), + new TransportType.File({ filename: Configuration.getLogErrorFile(), level: 'error' }), + new TransportType.File({ filename: Configuration.getLogFile() }), ]; } -let loggerInstance: Logger | null = null; -const getLogger = () => { - if (!loggerInstance) { - loggerInstance = createLogger({ - level: Configuration.getLogLevel(), - format: format.combine(format.splat(), format[Configuration.getLogFormat()]()), - transports: transports, - }); - return loggerInstance; - } -}; +const logger: Logger = createLogger({ + level: Configuration.getLogLevel(), + format: format.combine(format.splat(), (format[Configuration.getLogFormat()] as () => Format)()), + transports, +}); // // If enabled, log to the `console` with the format: // `${info.level}: ${info.message} JSON.stringify({ ...rest }) ` // if (Configuration.getLogConsole()) { - getLogger().add(new Console({ - format: format.combine(format.splat(), format[Configuration.getLogFormat()]()), - })); + logger.add( + new TransportType.Console({ + format: format.combine( + format.splat(), + (format[Configuration.getLogFormat()] as () => Format)() + ), + }) + ); } -export default getLogger; +export default logger;