import { Logger } from './logger.js';
import { Reporter } from './reporter.js';
/** Default logger that logs to console */
class CacheLogger extends Logger {
/**
* @param {SyslogLevel} fromLevel
* @param {Reporter} reporter
* @param {number} cacheSize
*/
constructor(fromLevel, reporter, cacheSize) {
super(fromLevel, reporter);
/** @type {number} */
this.cacheSize = cacheSize;
/**
* Logging for stats etc
* @protected
* @type {Reporter}
*/
this._reporter = reporter;
/**
* @param {Object} log
* @param {string} log.msg
* @param {SyslogLevel} [log.level]
*/
this.report = ({ msg, level = 'debug' }) =>
reporter.report({ msg, level, source: 'CacheLogger' });
this.report({ msg: 'Initiated' });
}
/** @type {Array<LogObject>} */
cache = [];
log(log) {
this.cache = [ log, ...this.cache.slice(0,this.cacheSize - 1) ]
}
}
export { CacheLogger }