mirror of
https://github.com/WorldEditAxe/eaglerproxy.git
synced 2024-09-20 17:36:00 -07:00
58 lines
2.2 KiB
JavaScript
58 lines
2.2 KiB
JavaScript
|
import { Chalk } from "chalk";
|
||
|
const color = new Chalk({ level: 2 });
|
||
|
let global_verbose = false;
|
||
|
export function verboseLogging(newVal) {
|
||
|
global_verbose = newVal ?? global_verbose ? false : true;
|
||
|
}
|
||
|
function jsonLog(type, message) {
|
||
|
return (JSON.stringify({
|
||
|
type: type,
|
||
|
message: message,
|
||
|
}) + "\n");
|
||
|
}
|
||
|
export class Logger {
|
||
|
loggerName;
|
||
|
verbose;
|
||
|
jsonLog = process.argv.includes("--json") || process.argv.includes("-j");
|
||
|
constructor(name, verbose) {
|
||
|
this.loggerName = name;
|
||
|
if (verbose)
|
||
|
this.verbose = verbose;
|
||
|
else
|
||
|
this.verbose = global_verbose;
|
||
|
}
|
||
|
info(s) {
|
||
|
if (!this.jsonLog)
|
||
|
process.stdout.write(`${color.green("I")} ${color.gray(new Date().toISOString())} ${color.reset(`${color.yellow(`${this.loggerName}:`)} ${s}`)}\n`);
|
||
|
else
|
||
|
process.stdout.write(jsonLog("info", s));
|
||
|
}
|
||
|
warn(s) {
|
||
|
if (!this.jsonLog)
|
||
|
process.stdout.write(`${color.yellow("W")} ${color.gray(new Date().toISOString())} ${color.yellow(`${color.yellow(`${this.loggerName}:`)} ${s}`)}\n`);
|
||
|
else
|
||
|
process.stderr.write(jsonLog("warn", s));
|
||
|
}
|
||
|
error(s) {
|
||
|
if (!this.jsonLog)
|
||
|
process.stderr.write(`* ${color.red("E")} ${color.gray(new Date().toISOString())} ${color.redBright(`${color.red(`${this.loggerName}:`)} ${s}`)}\n`);
|
||
|
else
|
||
|
process.stderr.write(jsonLog("error", s));
|
||
|
}
|
||
|
fatal(s) {
|
||
|
if (!this.jsonLog)
|
||
|
process.stderr.write(`** ${color.red("F!")} ${color.gray(new Date().toISOString())} ${color.bgRedBright(color.redBright(`${color.red(`${this.loggerName}:`)} ${s}`))}\n`);
|
||
|
else
|
||
|
process.stderr.write(jsonLog("fatal", s));
|
||
|
}
|
||
|
debug(s) {
|
||
|
if (this.verbose || global_verbose) {
|
||
|
if (!this.jsonLog)
|
||
|
process.stderr.write(`${color.gray("D")} ${color.gray(new Date().toISOString())} ${color.gray(`${color.gray(`${this.loggerName}:`)} ${s}`)}\n`);
|
||
|
else
|
||
|
process.stderr.write(jsonLog("debug", s));
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
verboseLogging(process.env.DEBUG != null && process.env.DEBUG != "false" ? true : false);
|