-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlogger.js
More file actions
42 lines (33 loc) · 1.03 KB
/
logger.js
File metadata and controls
42 lines (33 loc) · 1.03 KB
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
//Event Driven Architecture in NodeJs🟢
const fs = require("fs");
const os = require("os");
const EventEmitter = require("events"); //class, not an ordinary 'module'
//other classes - Error
class Logger extends EventEmitter {
log(message) {
console.log(message);
this.emit("message", { message });
}
}
const logger = new Logger();
const logFile = "./eventlog.txt";
const logToFile = (event) => {
const logMessage = `${new Date().toISOString()} - ${event.message} \n`;
fs.appendFileSync(logFile, logMessage);
};
logger.on("message", logToFile); //EDA
setInterval(() => {
const memoryUsage = (os.freemem() / os.totalmem()) * 100;
logger.log(`Current memory usage: ${memoryUsage.toFixed(2)}% ☑️`);
}, 3000);
//testing..
logger.log("Application started...");
logger.log("Application event occurred ✅");
/*
Application event occurred ✅
Current memory usage: 20.97% ☑️
Current memory usage: 21.49% ☑️
Current memory usage: 21.74% ☑️
Current memory usage: 21.59% ☑️
Current memory usage: 21.87% ☑️ ....
*/