@obsidize/logger
Version:
A tiny javascript logging library
38 lines (37 loc) • 1.64 kB
TypeScript
import { EventEmitter } from './event-emitter';
import { LogEventGuard } from './log-event-guard';
import { Logger } from './logger';
import type { LogEventConsumer, LogEventEmitterSource, LogEventFilterPredicate, LogEventInterceptor, LogEventLike, LogEventProducer, Maybe } from './types';
export interface LogEventTransportConfig {
/**
* A list of sources to intercept log events from.
*/
inputs: Maybe<LogEventProducer>[];
/**
* A list of destinations to trigger side-effects
* when the transport receives an event.
*/
outputs: Maybe<LogEventConsumer>[];
/**
* A custom filter function to suppress log events
* if the filter's conditions are not met.
*/
filter: LogEventFilterPredicate;
}
/**
* Route controller for events.
*
* When a logger referencing this transport (via `getLogger(tag)`) produces an event,
* the event will be verified against the transport's filter; if the event is
* deemed valid, it will be passed on to all assigned consumers, as well as
* any listeners registered to the transport's event emitter.
*/
export declare class LogEventTransport extends LogEventGuard implements LogEventInterceptor, LogEventEmitterSource {
readonly events: EventEmitter<LogEventLike>;
readonly forwardRef: (ev: LogEventLike) => void;
constructor(options?: Partial<LogEventTransportConfig>);
getLogger(tag: string): Logger;
interceptEvent(ev: LogEventLike): void;
createEvent(level: number, tag: string, message: string, params?: any[], timestamp?: number): LogEventLike;
configure(config: Partial<LogEventTransportConfig>): void;
}