Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | 29x 131x 131x 131x | import { createLogger } from './emitter/emitter-logger.ts';
import type { MemoryStore } from './emitter/index.ts';
import { memorySink } from './emitter/memory-sink.ts';
import { asExtendedLogger } from './factory.ts';
import type { SyncFinalizer } from './implementation/finalizer.ts';
import type { Logger, LogLevel } from './index.ts';
/**
* A logger that exposes the emitted log entries.
*
* @see {@link createMemoryLogger}
*/
export type MemoryLogger = SyncFinalizer<Logger> & MemoryStore;
/**
* Creates a logger that accumulates the log entries.
*
* The entries are flushed on `flush()` and `close()`.
*
* @example
*
* ```ts
* const logger = createMemoryLogger();
* logger.log('info', 'Hello, world!');
* expect(logger.entries).toEqual([{ level: 'info', message: 'Hello, world!' }]);
* logger.flush();
* ```
*
* @param level
* @returns
*/
export const createMemoryLogger = (level: LogLevel | 'off' | (() => LogLevel | 'off') = 'info'): MemoryLogger => {
const sink = memorySink();
const logger = createLogger(level, sink);
return asExtendedLogger(logger, { entries: sink.entries });
};
|