57 lines
1.6 KiB
JavaScript
57 lines
1.6 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.logger = void 0;
|
|
class LogService {
|
|
logs = [];
|
|
maxLogs = 1000;
|
|
log(level, category, message) {
|
|
const entry = {
|
|
timestamp: new Date(),
|
|
level,
|
|
category,
|
|
message
|
|
};
|
|
this.logs.unshift(entry);
|
|
if (this.logs.length > this.maxLogs) {
|
|
this.logs = this.logs.slice(0, this.maxLogs);
|
|
}
|
|
const timestamp = entry.timestamp.toISOString();
|
|
const prefix = `[${timestamp}] [${category.toUpperCase()}] [${level.toUpperCase()}]`;
|
|
if (level === 'error') {
|
|
console.error(prefix, message);
|
|
}
|
|
else if (level === 'warn') {
|
|
console.warn(prefix, message);
|
|
}
|
|
else {
|
|
console.log(prefix, message);
|
|
}
|
|
}
|
|
info(category, message) {
|
|
this.log('info', category, message);
|
|
}
|
|
error(category, message) {
|
|
this.log('error', category, message);
|
|
}
|
|
warn(category, message) {
|
|
this.log('warn', category, message);
|
|
}
|
|
debug(category, message) {
|
|
this.log('debug', category, message);
|
|
}
|
|
getLogs(limit = 100, level, category) {
|
|
let filtered = this.logs;
|
|
if (level) {
|
|
filtered = filtered.filter(log => log.level === level);
|
|
}
|
|
if (category) {
|
|
filtered = filtered.filter(log => log.category === category);
|
|
}
|
|
return filtered.slice(0, limit);
|
|
}
|
|
clear() {
|
|
this.logs = [];
|
|
}
|
|
}
|
|
exports.logger = new LogService();
|