X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Futils%2FLogger.ts;h=2d4c617249cd13bf28078b9cfa4054476ad2a4f9;hb=4c5e87ae4e007b3cb0a8636515da8c3fe2bccff3;hp=dfd04e90a89ede63f3b8ac9ef1c91b150b37af93;hpb=6bf6769ef4ee4fd3935a442243984a8aa2136e53;p=e-mobility-charging-stations-simulator.git diff --git a/src/utils/Logger.ts b/src/utils/Logger.ts index dfd04e90..2d4c6172 100644 --- a/src/utils/Logger.ts +++ b/src/utils/Logger.ts @@ -1,28 +1,46 @@ -import 'winston-daily-rotate-file'; +import type { FormatWrap } from 'logform'; +import { type Logger, createLogger, format, type transport } from 'winston'; +import TransportType from 'winston/lib/winston/transports'; +import DailyRotateFile from 'winston-daily-rotate-file'; -import winston, { transport } from 'winston'; - -import Configuration from './Configuration'; -import Utils from './Utils'; +import { Configuration, Utils } from './internal'; let transports: transport[]; -if (Configuration.getLogRotate()) { +if (Configuration.getLogRotate() === true) { const logMaxFiles = Configuration.getLogMaxFiles(); + const logMaxSize = Configuration.getLogMaxSize(); transports = [ - new winston.transports.DailyRotateFile({ filename: Utils.insertAt(Configuration.getLogErrorFile(), '-%DATE%', Configuration.getLogErrorFile().indexOf('.log')), level: 'error', maxFiles: logMaxFiles }), - new winston.transports.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', + ...(logMaxFiles && { maxFiles: logMaxFiles }), + ...(logMaxSize && { maxSize: logMaxSize }), + }), + new DailyRotateFile({ + filename: Utils.insertAt( + Configuration.getLogFile(), + '-%DATE%', + Configuration.getLogFile()?.indexOf('.log') + ), + ...(logMaxFiles && { maxFiles: logMaxFiles }), + ...(logMaxSize && { maxSize: logMaxSize }), + }), ]; } else { transports = [ - new winston.transports.File({ filename: Configuration.getLogErrorFile(), level: 'error' }), - new winston.transports.File({ filename: Configuration.getLogFile() }), + new TransportType.File({ filename: Configuration.getLogErrorFile(), level: 'error' }), + new TransportType.File({ filename: Configuration.getLogFile() }), ]; } -const logger = winston.createLogger({ +const logger: Logger = createLogger({ level: Configuration.getLogLevel(), - format: winston.format.combine(winston.format.splat(), winston.format[Configuration.getLogFormat()]()), - transports: transports, + format: format.combine(format.splat(), (format[Configuration.getLogFormat()] as FormatWrap)()), + transports, }); // @@ -30,9 +48,14 @@ const logger = winston.createLogger({ // `${info.level}: ${info.message} JSON.stringify({ ...rest }) ` // if (Configuration.getLogConsole()) { - logger.add(new winston.transports.Console({ - format: winston.format.combine(winston.format.splat(), winston.format[Configuration.getLogFormat()]()), - })); + logger.add( + new TransportType.Console({ + format: format.combine( + format.splat(), + (format[Configuration.getLogFormat()] as FormatWrap)() + ), + }) + ); } -export default logger; +export { logger };