1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
function makeLog(date, nameLogLevel, message) {
return (
"[" +
date.toLocaleString("fr-FR", { timeStyle: "medium" }) +
"][" +
nameLogLevel +
"] - " +
message
);
}
function loggerFactory() {
const logs = [];
return (level = 1000) => {
if (level === 1000) {
return (date, nameLogLevel, message) => {
if (
!["DEBUG", "INFO", "WARN", "ERROR"].includes(nameLogLevel)
) {
console.log(
nameLogLevel +
" is an invalid log level. Please use one of the following: DEBUG, INFO, WARN, ERROR.",
);
} else {
logs.push({
date: date,
nameLogLevel: nameLogLevel,
message: message,
});
}
};
} else if (typeof level !== "number" || level < 0) {
console.log("Bad argument.");
} else {
if (level > 3) {
level = 3;
}
for (const log of logs) {
const print = makeLog(
log["date"],
log["nameLogLevel"],
log["message"],
);
switch (log["nameLogLevel"]) {
case "ERROR":
console.log(print);
break;
case "WARN":
if (level > 0) {
console.log(print);
}
break;
case "INFO":
if (level > 1) {
console.log(print);
}
break;
case "DEBUG":
if (level > 2) {
console.log(print);
}
break;
}
}
}
};
}
module.exports = {
loggerFactory,
};
|