@surface/logger
Version:
Provides log functionality.
52 lines (51 loc) • 1.35 kB
JavaScript
/* eslint-disable sort-keys */
import chalk from "chalk";
import LogLevel from "./enums/log-level.js";
const COLORS = {
None: chalk.hex("#ffffff"),
Fatal: chalk.hex("#761d14"),
Error: chalk.hex("#bf0615"),
Warn: chalk.hex("#de843d"),
Info: chalk.hex("#68a0d4"),
Debug: chalk.hex("#ecb740"),
Trace: chalk.hex("#649c4c"),
};
export default class Logger {
logLevel;
constructor(logLevel) {
this.logLevel = logLevel;
}
log(message, level) {
console.log(`${COLORS[level](level)}: ${message}`);
}
fatal(message) {
if (this.logLevel >= LogLevel.Fatal) {
this.log(message, "Fatal");
}
}
error(message) {
if (this.logLevel >= LogLevel.Error) {
this.log(message, "Error");
}
}
warn(message) {
if (this.logLevel >= LogLevel.Warn) {
this.log(message, "Warn");
}
}
info(message) {
if (this.logLevel >= LogLevel.Info) {
this.log(message, "Info");
}
}
debug(message) {
if (this.logLevel >= LogLevel.Debug) {
this.log(message, "Debug");
}
}
trace(message) {
if (this.logLevel >= LogLevel.Trace) {
this.log(message, "Trace");
}
}
}