foundry-vtt-system-midgard5/source/utils/Logger.ts

47 lines
1.1 KiB
TypeScript

import Globals from "../Globals";
import Color from "color";
class Logger {
// static class
private constructor() {}
private static GetCurrentTime(): string {
return `[${(new Date().toLocaleTimeString())}] `;
}
static log(str: string, colour: Color = Color("white"), bold = false): void {
const time = ToConsole(Logger.GetCurrentTime(), Color("gray"), false)
const moduleName = ToConsole(Globals.name + " ", Color("cyan"), true);
const text = ToConsole(str, colour, bold);
console.log(time.str + moduleName.str + text.str, ...time.params.concat(moduleName.params, text.params));
}
static err(str: string): void {
Logger.log(str, Color("orange"));
}
static warn(str: string): void {
Logger.log(str, Color("yellow"));
}
static ok(str: string): void {
Logger.log(str, Color("green"));
}
}
interface ConsoleColour {
str: string,
params: Array<string>;
}
const ToConsole = (str: string, col: Color, bold: boolean): ConsoleColour => {
return {
str: `%c` + str + `%c`,
params: [
"color: " + col.hex() + ";" + (bold ? "font-weight: bold;" : ""),
"color: unset; font-weight: unset;"
]
}
};
export default Logger;