diff --git a/src/buffer-log-appender.ts b/src/buffer-log-appender.ts new file mode 100644 index 0000000..edf8dea --- /dev/null +++ b/src/buffer-log-appender.ts @@ -0,0 +1,26 @@ +import type { + LogLevel, + LogMessage +} from './log-message' + +export class BufferLogAppender implements LogAppender { + public threshold = LogLevel.ALL + public buffer: LogMessage[] + + constructor(buffer: LogMessage[], threshold?: LogLevel) { + this.buffer = buffer + + if (threshold) { + this.threshold = threshold + } + } + + public appendMessage(msg: LogMessage): void { + if (this.threshold && msg.level < this.threshold) return + else buffer.push(msg) + } + + public clearBuffer(): void { + this.buffer.length = 0 + } +}