Apply prettier formating
[e-mobility-charging-stations-simulator.git] / src / utils / Logger.ts
CommitLineData
8387cd31
JB
1import { Console, File } from 'winston/lib/winston/transports';
2import { Logger, createLogger, format, transport } from 'winston';
6bf6769e 3
6af9012e 4import Configuration from './Configuration';
8387cd31 5import DailyRotateFile from 'winston-daily-rotate-file';
7ec46a9a 6import Utils from './Utils';
7ec46a9a 7
6bf6769e
JB
8let transports: transport[];
9if (Configuration.getLogRotate()) {
10 const logMaxFiles = Configuration.getLogMaxFiles();
11 transports = [
e7aeea18
JB
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 }),
6bf6769e
JB
29 ];
30} else {
31 transports = [
8387cd31
JB
32 new File({ filename: Configuration.getLogErrorFile(), level: 'error' }),
33 new File({ filename: Configuration.getLogFile() }),
6bf6769e
JB
34 ];
35}
7dde0b73 36
9f2e3130
JB
37const logger: Logger = createLogger({
38 level: Configuration.getLogLevel(),
39 format: format.combine(format.splat(), format[Configuration.getLogFormat()]()),
40 transports: transports,
41});
7dde0b73
JB
42
43//
44// If enabled, log to the `console` with the format:
45// `${info.level}: ${info.message} JSON.stringify({ ...rest }) `
46//
7ec46a9a 47if (Configuration.getLogConsole()) {
e7aeea18
JB
48 logger.add(
49 new Console({
50 format: format.combine(format.splat(), format[Configuration.getLogFormat()]()),
51 })
52 );
7dde0b73
JB
53}
54
9f2e3130 55export default logger;