summaryrefslogtreecommitdiff
path: root/graphs/js/modularLogger
diff options
context:
space:
mode:
Diffstat (limited to 'graphs/js/modularLogger')
-rw-r--r--graphs/js/modularLogger/modularLogger.js76
1 files changed, 76 insertions, 0 deletions
diff --git a/graphs/js/modularLogger/modularLogger.js b/graphs/js/modularLogger/modularLogger.js
new file mode 100644
index 0000000..b22b23c
--- /dev/null
+++ b/graphs/js/modularLogger/modularLogger.js
@@ -0,0 +1,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,
+};