file-error-logging
Version:
Log your errors directly to the console and to a .log file
28 lines (27 loc) • 818 B
JavaScript
;
class LogStore {
constructor() {
this.logs = [];
}
addLog(level, message, context) {
this.logs.push({ level, message, timestamp: new Date(), context });
}
query(filter) {
return this.logs.filter(log => {
if (filter.level && log.level !== filter.level)
return false;
if (filter.since && log.timestamp < filter.since)
return false;
if (filter.context && !this.matchesContext(log.context, filter.context))
return false;
return true;
});
}
matchesContext(logContext, filterContext) {
for (const key in filterContext) {
if (logContext[key] !== filterContext[key])
return false;
}
return true;
}
}