1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 | "use strict";
|
7 |
|
8 | const SyncBailHook = require("tapable/lib/SyncBailHook");
|
9 | const { Logger } = require("./Logger");
|
10 | const createConsoleLogger = require("./createConsoleLogger");
|
11 |
|
12 |
|
13 | let currentDefaultLoggerOptions = {
|
14 | level: "info",
|
15 | debug: false,
|
16 | console
|
17 | };
|
18 | let currentDefaultLogger = createConsoleLogger(currentDefaultLoggerOptions);
|
19 |
|
20 |
|
21 |
|
22 |
|
23 |
|
24 | exports.getLogger = name => {
|
25 | return new Logger(
|
26 | (type, args) => {
|
27 | if (exports.hooks.log.call(name, type, args) === undefined) {
|
28 | currentDefaultLogger(name, type, args);
|
29 | }
|
30 | },
|
31 | childName => exports.getLogger(`${name}/${childName}`)
|
32 | );
|
33 | };
|
34 |
|
35 |
|
36 |
|
37 |
|
38 |
|
39 | exports.configureDefaultLogger = options => {
|
40 | Object.assign(currentDefaultLoggerOptions, options);
|
41 | currentDefaultLogger = createConsoleLogger(currentDefaultLoggerOptions);
|
42 | };
|
43 |
|
44 | exports.hooks = {
|
45 | log: new SyncBailHook(["origin", "type", "args"])
|
46 | };
|