mirror of
https://github.com/ajayyy/SponsorBlockServer.git
synced 2025-12-11 05:57:04 +03:00
migrate to typescript
This commit is contained in:
committed by
Dainius Dauksevicius
parent
c462323dd5
commit
08d27265fc
89
src/utils/logger.ts
Normal file
89
src/utils/logger.ts
Normal file
@@ -0,0 +1,89 @@
|
||||
import {config} from '../config';
|
||||
|
||||
const enum LogLevel {
|
||||
ERROR = "ERROR",
|
||||
WARN = "WARN",
|
||||
INFO = "INFO",
|
||||
DEBUG = "DEBUG"
|
||||
}
|
||||
|
||||
const colors = {
|
||||
Reset: "\x1b[0m",
|
||||
Bright: "\x1b[1m",
|
||||
Dim: "\x1b[2m",
|
||||
Underscore: "\x1b[4m",
|
||||
Blink: "\x1b[5m",
|
||||
Reverse: "\x1b[7m",
|
||||
Hidden: "\x1b[8m",
|
||||
|
||||
FgBlack: "\x1b[30m",
|
||||
FgRed: "\x1b[31m",
|
||||
FgGreen: "\x1b[32m",
|
||||
FgYellow: "\x1b[33m",
|
||||
FgBlue: "\x1b[34m",
|
||||
FgMagenta: "\x1b[35m",
|
||||
FgCyan: "\x1b[36m",
|
||||
FgWhite: "\x1b[37m",
|
||||
|
||||
BgBlack: "\x1b[40m",
|
||||
BgRed: "\x1b[41m",
|
||||
BgGreen: "\x1b[42m",
|
||||
BgYellow: "\x1b[43m",
|
||||
BgBlue: "\x1b[44m",
|
||||
BgMagenta: "\x1b[45m",
|
||||
BgCyan: "\x1b[46m",
|
||||
BgWhite: "\x1b[47m",
|
||||
};
|
||||
|
||||
|
||||
class Logger {
|
||||
private _settings = {
|
||||
ERROR: true,
|
||||
WARN: true,
|
||||
INFO: false,
|
||||
DEBUG: false,
|
||||
};
|
||||
|
||||
constructor() {
|
||||
if (config.mode === 'development') {
|
||||
this._settings.INFO = true;
|
||||
this._settings.DEBUG = true;
|
||||
} else if (config.mode === 'test') {
|
||||
this._settings.WARN = false;
|
||||
}
|
||||
}
|
||||
|
||||
error(str: string) {
|
||||
this.log(LogLevel.ERROR, str);
|
||||
}
|
||||
warn(str: string) {
|
||||
this.log(LogLevel.WARN, str);
|
||||
}
|
||||
info(str: string) {
|
||||
this.log(LogLevel.INFO, str);
|
||||
}
|
||||
debug(str: string) {
|
||||
this.log(LogLevel.DEBUG, str);
|
||||
}
|
||||
|
||||
private log(level: LogLevel, str: string) {
|
||||
if (!this._settings[level]) {
|
||||
return;
|
||||
}
|
||||
|
||||
let color = colors.Bright;
|
||||
if (level === LogLevel.ERROR) color = colors.FgRed;
|
||||
if (level === LogLevel.WARN) color = colors.FgYellow;
|
||||
|
||||
let levelStr = level.toString();
|
||||
if (levelStr.length === 4) {
|
||||
levelStr += " "; // ensure logs are aligned
|
||||
}
|
||||
console.log(colors.Dim, `${levelStr} ${new Date().toISOString()}: `, color, str, colors.Reset);
|
||||
}
|
||||
}
|
||||
|
||||
const loggerInstance = new Logger();
|
||||
export {
|
||||
loggerInstance as Logger
|
||||
}
|
||||
Reference in New Issue
Block a user