la-cosa-nostra
Version:
A Mafia bot designed to run in Discord - beware the traitors and the lies!
68 lines (41 loc) • 1.89 kB
JavaScript
var fs = require("fs");
module.exports = class {
constructor (file=__dirname + "/log.txt", console_threshold=0, file_threshold=0) {
this.console_threshold = console_threshold;
this.file_threshold = file_threshold;
if (!fs.existsSync(file)) {
fs.writeFileSync(file, "█▀▀ █▀▀█ █░█ █▀▀█ █▀▀ ░░▀ █▀▀█ █▀▀█ █▀▀█ ░▀░ █░░█ █▀▄▀█\n█▀▀ █░░█ ▄▀▄ █░░█ █▀▀ ░░█ █░░█ █▄▄█ █░░█ ▀█▀ █░░█ █░▀░█\n▀░░ ▀▀▀▀ ▀░▀ ▀▀▀▀ ▀░░ █▄█ ▀▀▀▀ ▀░░▀ ▀▀▀█ ▀▀▀ ░▀▀▀ ▀░░░▀\n\n[Log entry created " + new Date().toUTCString() + "]");
};
this.file = file;
}
log (log_level, message) {
if (!message) {
return null;
};
var args = Array.from(arguments);
if (typeof message === "string") {
for (var i = 2; i < args.length; i++) {
message = message.replace("%s", args[i]);
};
};
if (log_level >= this.console_threshold) {
console.log(message);
};
if (log_level >= this.file_threshold) {
if (typeof message === "string") {
message = message.replace(/\x1b\[[0-9]+m/g, "");
};
var content = fs.readFileSync(this.file, "utf8");
content = content + "\n" + "[" + new Date().toUTCString() + "; " + log_level + "] " + message;
fs.writeFileSync(this.file, content);
};
}
logError (error) {
var message = "[Error handled by catcher]\n1. Message: %s\n2. Stack: %s\n[End of error log]";
this.log(4, message, error.message, error.stack);
}
setLogLevel (console_log_level, file_log_level) {
this.console_threshold = console_log_level;
this.file_threshold = file_log_level;
}
};