X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Futils%2FLogger.ts;h=7d80e1aece51349349abd0766f8af5ae2b196833;hb=8f9060ba0f4e2e22053ceb34f357bb8a1263d889;hp=1e22e4050293eeb6c43d295d6d79933723feeef3;hpb=5d0498291974ec3a130ba4b1c4663d13d16992c5;p=e-mobility-charging-stations-simulator.git diff --git a/src/utils/Logger.ts b/src/utils/Logger.ts index 1e22e405..7d80e1ae 100644 --- a/src/utils/Logger.ts +++ b/src/utils/Logger.ts @@ -1,93 +1,74 @@ -import type { FormatWrap } from 'logform'; -import { createLogger, format, type transport } from 'winston'; -import TransportType from 'winston/lib/winston/transports/index.js'; -import DailyRotateFile from 'winston-daily-rotate-file'; +import type { FormatWrap } from 'logform' +import { createLogger, format, type transport } from 'winston' +import TransportType from 'winston/lib/winston/transports/index.js' +import DailyRotateFile from 'winston-daily-rotate-file' -import { Configuration } from './Configuration'; -import { insertAt } from './Utils'; -import { ConfigurationSection, type LogConfiguration } from '../types'; +import { Configuration } from './Configuration.js' +import { insertAt } from './Utils.js' +import { ConfigurationSection, type LogConfiguration } from '../types/index.js' -let transports: transport[]; -if ( - Configuration.getConfigurationSection(ConfigurationSection.log).rotate === true -) { - const logMaxFiles = Configuration.getConfigurationSection( - ConfigurationSection.log, - ).maxFiles; - const logMaxSize = Configuration.getConfigurationSection( - ConfigurationSection.log, - ).maxSize; +const logConfiguration = Configuration.getConfigurationSection( + ConfigurationSection.log +) +let transports: transport[] +if (logConfiguration.rotate === true) { + const logMaxFiles = logConfiguration.maxFiles + const logMaxSize = logConfiguration.maxSize transports = [ new DailyRotateFile({ filename: insertAt( - Configuration.getConfigurationSection(ConfigurationSection.log) - .errorFile!, + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + logConfiguration.errorFile!, '-%DATE%', - Configuration.getConfigurationSection( - ConfigurationSection.log, - ).errorFile!.indexOf('.log'), + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + logConfiguration.errorFile!.indexOf('.log') ), level: 'error', - ...(logMaxFiles && { maxFiles: logMaxFiles }), - ...(logMaxSize && { maxSize: logMaxSize }), + ...(logMaxFiles != null && { maxFiles: logMaxFiles }), + ...(logMaxSize != null && { maxSize: logMaxSize }) }), new DailyRotateFile({ - filename: insertAt( - Configuration.getConfigurationSection(ConfigurationSection.log).file!, - '-%DATE%', - Configuration.getConfigurationSection( - ConfigurationSection.log, - ).file!.indexOf('.log'), - ), - ...(logMaxFiles && { maxFiles: logMaxFiles }), - ...(logMaxSize && { maxSize: logMaxSize }), - }), - ]; + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + filename: insertAt(logConfiguration.file!, '-%DATE%', logConfiguration.file!.indexOf('.log')), + ...(logMaxFiles != null && { maxFiles: logMaxFiles }), + ...(logMaxSize != null && { maxSize: logMaxSize }) + }) + ] } else { transports = [ new TransportType.File({ - filename: Configuration.getConfigurationSection(ConfigurationSection.log) - .errorFile, - level: 'error', + filename: logConfiguration.errorFile, + level: 'error' }), new TransportType.File({ - filename: Configuration.getConfigurationSection(ConfigurationSection.log) - .file, - }), - ]; + filename: logConfiguration.file + }) + ] } export const logger = createLogger({ - silent: !Configuration.getConfigurationSection(ConfigurationSection.log) - .enabled, - level: Configuration.getConfigurationSection(ConfigurationSection.log).level, + silent: logConfiguration.enabled === false, + level: logConfiguration.level, format: format.combine( format.splat(), - ( - format[ - Configuration.getConfigurationSection(ConfigurationSection.log).format! - ] as FormatWrap - )(), + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + (format[logConfiguration.format! as keyof FormatWrap] as FormatWrap)() ), - transports, -}); + transports +}) // // If enabled, log to the `console` with the format: // `${info.level}: ${info.message} JSON.stringify({ ...rest }) ` // -if (Configuration.getConfigurationSection(ConfigurationSection.log).console) { +if (logConfiguration.console === true) { logger.add( new TransportType.Console({ format: format.combine( format.splat(), - ( - format[ - Configuration.getConfigurationSection(ConfigurationSection.log) - .format! - ] as FormatWrap - )(), - ), - }), - ); + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + (format[logConfiguration.format! as keyof FormatWrap] as FormatWrap)() + ) + }) + ) }