X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Futils%2FLogger.ts;h=1e22e4050293eeb6c43d295d6d79933723feeef3;hb=c1c97db8708f26af10385f6e86af7cd933891bb8;hp=d48659f4bbaea774db5c32b2f44ff784eeaa8245;hpb=b768993dd4636df8276b0ea47158dd9bdc9a997b;p=e-mobility-charging-stations-simulator.git diff --git a/src/utils/Logger.ts b/src/utils/Logger.ts index d48659f4..1e22e405 100644 --- a/src/utils/Logger.ts +++ b/src/utils/Logger.ts @@ -1,32 +1,43 @@ import type { FormatWrap } from 'logform'; -import { type Logger, createLogger, format, type transport } from 'winston'; +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, Utils } from './internal'; import { Configuration } from './Configuration'; -import { Utils } from './Utils'; +import { insertAt } from './Utils'; +import { ConfigurationSection, type LogConfiguration } from '../types'; let transports: transport[]; -if (Configuration.getLogRotate() === true) { - const logMaxFiles = Configuration.getLogMaxFiles(); - const logMaxSize = Configuration.getLogMaxSize(); +if ( + Configuration.getConfigurationSection(ConfigurationSection.log).rotate === true +) { + const logMaxFiles = Configuration.getConfigurationSection( + ConfigurationSection.log, + ).maxFiles; + const logMaxSize = Configuration.getConfigurationSection( + ConfigurationSection.log, + ).maxSize; transports = [ new DailyRotateFile({ - filename: Utils.insertAt( - Configuration.getLogErrorFile(), + filename: insertAt( + Configuration.getConfigurationSection(ConfigurationSection.log) + .errorFile!, '-%DATE%', - Configuration.getLogErrorFile()?.indexOf('.log') + Configuration.getConfigurationSection( + ConfigurationSection.log, + ).errorFile!.indexOf('.log'), ), level: 'error', ...(logMaxFiles && { maxFiles: logMaxFiles }), ...(logMaxSize && { maxSize: logMaxSize }), }), new DailyRotateFile({ - filename: Utils.insertAt( - Configuration.getLogFile(), + filename: insertAt( + Configuration.getConfigurationSection(ConfigurationSection.log).file!, '-%DATE%', - Configuration.getLogFile()?.indexOf('.log') + Configuration.getConfigurationSection( + ConfigurationSection.log, + ).file!.indexOf('.log'), ), ...(logMaxFiles && { maxFiles: logMaxFiles }), ...(logMaxSize && { maxSize: logMaxSize }), @@ -34,14 +45,30 @@ if (Configuration.getLogRotate() === true) { ]; } else { transports = [ - new TransportType.File({ filename: Configuration.getLogErrorFile(), level: 'error' }), - new TransportType.File({ filename: Configuration.getLogFile() }), + new TransportType.File({ + filename: Configuration.getConfigurationSection(ConfigurationSection.log) + .errorFile, + level: 'error', + }), + new TransportType.File({ + filename: Configuration.getConfigurationSection(ConfigurationSection.log) + .file, + }), ]; } -const logger: Logger = createLogger({ - level: Configuration.getLogLevel(), - format: format.combine(format.splat(), (format[Configuration.getLogFormat()] as FormatWrap)()), +export const logger = createLogger({ + silent: !Configuration.getConfigurationSection(ConfigurationSection.log) + .enabled, + level: Configuration.getConfigurationSection(ConfigurationSection.log).level, + format: format.combine( + format.splat(), + ( + format[ + Configuration.getConfigurationSection(ConfigurationSection.log).format! + ] as FormatWrap + )(), + ), transports, }); @@ -49,15 +76,18 @@ const logger: Logger = createLogger({ // If enabled, log to the `console` with the format: // `${info.level}: ${info.message} JSON.stringify({ ...rest }) ` // -if (Configuration.getLogConsole()) { +if (Configuration.getConfigurationSection(ConfigurationSection.log).console) { logger.add( new TransportType.Console({ format: format.combine( format.splat(), - (format[Configuration.getLogFormat()] as FormatWrap)() + ( + format[ + Configuration.getConfigurationSection(ConfigurationSection.log) + .format! + ] as FormatWrap + )(), ), - }) + }), ); } - -export { logger };