f2e-server3
Version:
f2e-server 3.0
67 lines (66 loc) • 2.27 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.logger = exports.Logger = exports.LogLevelOptions = exports.LogLevel = void 0;
var LogLevel;
(function (LogLevel) {
LogLevel[LogLevel["DEBUG"] = 0] = "DEBUG";
LogLevel[LogLevel["INFO"] = 1] = "INFO";
LogLevel[LogLevel["LOG"] = 1] = "LOG";
LogLevel[LogLevel["WARN"] = 2] = "WARN";
LogLevel[LogLevel["ERROR"] = 3] = "ERROR";
LogLevel[LogLevel["OFF"] = 5] = "OFF";
})(LogLevel || (exports.LogLevel = LogLevel = {}));
const LogTypeShow = {
debug: 'DEBUG',
info: 'INFO',
log: 'LOG',
warn: 'WARN',
error: 'ERROR',
};
exports.LogLevelOptions = ['DEBUG', 'INFO', 'LOG', 'WARN', 'ERROR', 'OFF'];
const time_show_map = {};
class Logger {
_level;
setLevel = (level) => {
if (typeof level === 'string') {
this._level = LogLevel[level];
}
else {
this._level = level;
}
};
_console;
constructor(level = LogLevel.ERROR, _console) {
this._level = level;
this._console = _console || console;
}
logWrapper(level, type, ...data) {
if (this._level <= level) {
const now = new Date();
const time = Math.floor(now.getTime() / 1000);
const show = time_show_map[time] || (time_show_map[time] = now.toLocaleString());
this._console[type](show, LogTypeShow[type], ...data);
}
}
log = (...data) => this.logWrapper(LogLevel.INFO, 'log', ...data);
debug = (...data) => this.logWrapper(LogLevel.DEBUG, 'debug', ...data);
info = (...data) => this.logWrapper(LogLevel.INFO, 'info', ...data);
warn = (...data) => this.logWrapper(LogLevel.WARN, 'warn', ...data);
error = (...data) => this.logWrapper(LogLevel.ERROR, 'error', ...data);
}
exports.Logger = Logger;
let level = LogLevel.INFO;
try {
const logLevelEnv = process.env.LOG_LEVEL;
if (/^[0123]$/.test(logLevelEnv || "")) {
level = parseInt(logLevelEnv || "1", 10);
}
else if (process.argv.find(arg => arg === "--debug")) {
level = LogLevel.DEBUG;
}
}
catch (error) {
console.error("Failed to parse LOG_LEVEL:", error);
}
exports.logger = new Logger(level);
exports.default = exports.logger;