Files
cannaiq/backend/dist/services/logger.js
2025-11-28 19:45:44 -07:00

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();