You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
1.1 KiB
34 lines
1.1 KiB
import * as fs from "node:fs";
|
|
|
|
|
|
class Logger {
|
|
|
|
constructor(protocol=null, endpoint, ip) {
|
|
this.id = ip.split(":")[3];
|
|
this.protocol = protocol;
|
|
this.endpoint = endpoint;
|
|
this.file = process.env.LOG_FILE;
|
|
}
|
|
|
|
getCurrentTimestamp() {
|
|
const time = new Date();
|
|
return "[" + time.toISOString().split("T")[0] + " " + time.toISOString().split("T")[1].split("Z")[0] + "]";
|
|
}
|
|
|
|
action(action) {
|
|
const content = fs.readFileSync(this.file).toString();
|
|
const payload = this.getCurrentTimestamp() + " [" + this.id + "] " + this.protocol + "(" + this.endpoint + "): " + action + "\n";
|
|
console.log(payload);
|
|
fs.writeFileSync(this.file, content + payload);
|
|
}
|
|
|
|
write(message, status) {
|
|
const content = fs.readFileSync(this.file).toString();
|
|
const payload = this.getCurrentTimestamp() + " [" + this.id + "] " + this.protocol + "(" + this.endpoint + "): " + message + " with status " + status + "\n";
|
|
console.log(payload);
|
|
fs.writeFileSync(this.file, content + payload);
|
|
}
|
|
|
|
}
|
|
|
|
export default Logger;
|