Apply prettier formating
[e-mobility-charging-stations-simulator.git] / src / utils / Logger.ts
1 import { Console, File } from 'winston/lib/winston/transports';
2 import { Logger, createLogger, format, transport } from 'winston';
3
4 import Configuration from './Configuration';
5 import DailyRotateFile from 'winston-daily-rotate-file';
6 import Utils from './Utils';
7
8 let transports: transport[];
9 if (Configuration.getLogRotate()) {
10 const logMaxFiles = Configuration.getLogMaxFiles();
11 transports = [
12 new DailyRotateFile({
13 filename: Utils.insertAt(
14 Configuration.getLogErrorFile(),
15 '-%DATE%',
16 Configuration.getLogErrorFile().indexOf('.log')
17 ),
18 level: 'error',
19 maxFiles: logMaxFiles,
20 }),
21 new DailyRotateFile({
22 filename: Utils.insertAt(
23 Configuration.getLogFile(),
24 '-%DATE%',
25 Configuration.getLogFile().indexOf('.log')
26 ),
27 maxFiles: logMaxFiles,
28 }),
29 ];
30 } else {
31 transports = [
32 new File({ filename: Configuration.getLogErrorFile(), level: 'error' }),
33 new File({ filename: Configuration.getLogFile() }),
34 ];
35 }
36
37 const logger: Logger = createLogger({
38 level: Configuration.getLogLevel(),
39 format: format.combine(format.splat(), format[Configuration.getLogFormat()]()),
40 transports: transports,
41 });
42
43 //
44 // If enabled, log to the `console` with the format:
45 // `${info.level}: ${info.message} JSON.stringify({ ...rest }) `
46 //
47 if (Configuration.getLogConsole()) {
48 logger.add(
49 new Console({
50 format: format.combine(format.splat(), format[Configuration.getLogFormat()]()),
51 })
52 );
53 }
54
55 export default logger;