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();
13 filename
: Utils
.insertAt(
14 Configuration
.getLogErrorFile(),
16 Configuration
.getLogErrorFile().indexOf('.log')
19 maxFiles
: logMaxFiles
,
22 filename
: Utils
.insertAt(
23 Configuration
.getLogFile(),
25 Configuration
.getLogFile().indexOf('.log')
27 maxFiles
: logMaxFiles
,
32 new File({ filename
: Configuration
.getLogErrorFile(), level
: 'error' }),
33 new File({ filename
: Configuration
.getLogFile() }),
37 const logger
: Logger
= createLogger({
38 level
: Configuration
.getLogLevel(),
39 format
: format
.combine(format
.splat(), format
[Configuration
.getLogFormat()]()),
40 transports
: transports
,
44 // If enabled, log to the `console` with the format:
45 // `${info.level}: ${info.message} JSON.stringify({ ...rest }) `
47 if (Configuration
.getLogConsole()) {
50 format
: format
.combine(format
.splat(), format
[Configuration
.getLogFormat()]()),
55 export default logger
;