a558adad618f2d4291462744ea474392ffb3dff9
1 import { Console
, File
} from
'winston/lib/winston/transports';
2 import { Logger
, createLogger
, format
, transport
} from
'winston';
4 import Configuration from
'./Configuration';
5 import DailyRotateFile from
'winston-daily-rotate-file';
6 import Utils from
'./Utils';
8 let transports
: transport
[];
9 if (Configuration
.getLogRotate()) {
10 const logMaxFiles
= Configuration
.getLogMaxFiles();
12 new DailyRotateFile({ filename
: Utils
.insertAt(Configuration
.getLogErrorFile(), '-%DATE%', Configuration
.getLogErrorFile().indexOf('.log')), level
: 'error', maxFiles
: logMaxFiles
}),
13 new DailyRotateFile({ filename
: Utils
.insertAt(Configuration
.getLogFile(), '-%DATE%', Configuration
.getLogFile().indexOf('.log')), maxFiles
: logMaxFiles
}),
17 new File({ filename
: Configuration
.getLogErrorFile(), level
: 'error' }),
18 new File({ filename
: Configuration
.getLogFile() }),
22 let loggerInstance
: Logger
| null = null;
23 const getLogger
= () => {
24 if (!loggerInstance
) {
25 loggerInstance
= createLogger({
26 level
: Configuration
.getLogLevel(),
27 format
: format
.combine(format
.splat(), format
[Configuration
.getLogFormat()]()),
28 transports
: transports
,
30 return loggerInstance
;
35 // If enabled, log to the `console` with the format:
36 // `${info.level}: ${info.message} JSON.stringify({ ...rest }) `
38 if (Configuration
.getLogConsole()) {
39 getLogger().add(new Console({
40 format
: format
.combine(format
.splat(), format
[Configuration
.getLogFormat()]()),
44 export default getLogger
;