aba00c742633c0422a6091f593ab1b8329790fe6
1 import { Logger
, createLogger
, format
, transport
} from
'winston';
3 import Configuration from
'./Configuration';
4 import DailyRotateFile from
'winston-daily-rotate-file';
5 import { Format
} from
'logform';
6 import TransportType from
'winston/lib/winston/transports/index.js';
7 import Utils from
'./Utils';
9 let transports
: transport
[];
10 if (Configuration
.getLogRotate()) {
11 const logMaxFiles
= Configuration
.getLogMaxFiles();
14 filename
: Utils
.insertAt(
15 Configuration
.getLogErrorFile(),
17 Configuration
.getLogErrorFile().indexOf('.log')
20 maxFiles
: logMaxFiles
,
23 filename
: Utils
.insertAt(
24 Configuration
.getLogFile(),
26 Configuration
.getLogFile().indexOf('.log')
28 maxFiles
: logMaxFiles
,
33 new TransportType
.File({ filename
: Configuration
.getLogErrorFile(), level
: 'error' }),
34 new TransportType
.File({ filename
: Configuration
.getLogFile() }),
38 const logger
: Logger
= createLogger({
39 level
: Configuration
.getLogLevel(),
40 format
: format
.combine(format
.splat(), (format
[Configuration
.getLogFormat()] as () => Format
)()),
41 transports
: transports
,
45 // If enabled, log to the `console` with the format:
46 // `${info.level}: ${info.message} JSON.stringify({ ...rest }) `
48 if (Configuration
.getLogConsole()) {
50 new TransportType
.Console({
51 format
: format
.combine(
53 (format
[Configuration
.getLogFormat()] as () => Format
)()
59 export default logger
;