50 |
62 |
|
) |
51 |
63 |
|
} |
52 |
64 |
|
|
|
65 |
+ |
/** |
|
66 |
+ |
* Returns a transport with log file saving (rotates if args.logRotate is true) |
|
67 |
+ |
*/ |
|
68 |
+ |
function logFileTransport(args: any) { |
|
69 |
+ |
let filename = args.logFile === true ? 'ethereumjs.log' : args.logFile |
|
70 |
+ |
const opts = { |
|
71 |
+ |
level: args.logLevelFile, |
|
72 |
+ |
format: formatConfig(), |
|
73 |
+ |
} |
|
74 |
+ |
if (!args.logRotate) { |
|
75 |
+ |
return new wTransports.File({ |
|
76 |
+ |
...opts, |
|
77 |
+ |
filename, |
|
78 |
+ |
}) |
|
79 |
+ |
} else { |
|
80 |
+ |
// Insert %DATE% before the last period |
|
81 |
+ |
const lastPeriod = filename.lastIndexOf('.') |
|
82 |
+ |
filename = `${filename.substring(0, lastPeriod)}.%DATE%${filename.substring(lastPeriod)}` |
|
83 |
+ |
return new DailyRotateFile({ |
|
84 |
+ |
...opts, |
|
85 |
+ |
filename, |
|
86 |
+ |
maxFiles: args.logMaxFiles, |
|
87 |
+ |
}) |
|
88 |
+ |
} |
|
89 |
+ |
} |
|
90 |
+ |
|
|
91 |
+ |
/** |
|
92 |
+ |
* Returns a formatted {@link Logger} |
|
93 |
+ |
*/ |
53 |
94 |
|
export function getLogger(args: { [key: string]: any } = { loglevel: 'info' }) { |
54 |
95 |
|
const transports: any[] = [ |
55 |
96 |
|
new wTransports.Console({ |
56 |
97 |
|
level: args.loglevel, |
57 |
98 |
|
silent: args.loglevel === 'off', |
58 |
|
- |
format: formatConfig(), |
|
99 |
+ |
format: formatConfig(true), |
59 |
100 |
|
}), |
60 |
101 |
|
] |
61 |
|
- |
let filename = args.logFile === true ? 'ethereumjs.log' : args.logFile |
62 |
|
- |
if (filename) { |
63 |
|
- |
const opts = { |
64 |
|
- |
level: args.logLevelFile, |
65 |
|
- |
format: formatConfig(false), |
66 |
|
- |
} |
67 |
|
- |
if (args.logRotate) { |
68 |
|
- |
// Insert %DATE% before the last period |
69 |
|
- |
const lastPeriod = filename.lastIndexOf('.') |
70 |
|
- |
filename = `${filename.substring(0, lastPeriod)}.%DATE%${filename.substring(lastPeriod)}` |
71 |
|
- |
transports.push( |
72 |
|
- |
new DailyRotateFile({ |
73 |
|
- |
...opts, |
74 |
|
- |
filename, |
75 |
|
- |
maxFiles: args.logMaxFiles, |
76 |
|
- |
}) |
77 |
|
- |
) |
78 |
|
- |
} else { |
79 |
|
- |
transports.push( |
80 |
|
- |
new wTransports.File({ |
81 |
|
- |
...opts, |
82 |
|
- |
filename, |
83 |
|
- |
}) |
84 |
|
- |
) |
85 |
|
- |
} |
86 |
|
- |
} |
87 |
|
- |
|
88 |
|
- |
const logger = createLogger({ format: formatConfig(), transports }) |
89 |
|
- |
if (filename) { |
90 |
|
- |
logger.debug(`Writing log file=${filename}`) |
|
102 |
+ |
if (args.logFile) { |
|
103 |
+ |
transports.push(logFileTransport(args)) |
91 |
104 |
|
} |
|
105 |
+ |
const logger = createLogger({ transports }) |
92 |
106 |
|
return logger |
93 |
107 |
|
} |
125e210
2dfa7ee