22 lines
578 B
TypeScript
22 lines
578 B
TypeScript
import type { LogAppender } from './log-appender'
|
|
import { LogLevel, type LogMessage } from './log-message'
|
|
|
|
export class BufferLogAppender implements LogAppender {
|
|
public threshold: LogLevel
|
|
public buffer: LogMessage[]
|
|
|
|
constructor(buffer?: LogMessage[], threshold?: LogLevel) {
|
|
this.buffer = buffer ?? []
|
|
this.threshold = threshold ?? LogLevel.ALL
|
|
}
|
|
|
|
public appendMessage(msg: LogMessage): void {
|
|
if (this.threshold && msg.level < this.threshold) return
|
|
else this.buffer.push(msg)
|
|
}
|
|
|
|
public clearBuffer(): void {
|
|
this.buffer.length = 0
|
|
}
|
|
}
|