slf
Version:
Simple Logging Facade
45 lines (44 loc) • 1.06 kB
TypeScript
import { Logger } from './Logger';
export declare enum Level {
Debug = 1,
Info = 2,
Warn = 3,
Error = 4,
Critical = 5
}
export interface Event {
timeStamp: number;
params: any[];
name: string;
level: Lowercase<keyof typeof Level>;
}
export interface Factory {
(...events: Event[]): void;
}
export interface NextFunc {
(error: Error | null, event: Event): void;
}
export interface Middleware {
(event: Event, next: NextFunc): void;
}
interface Slf {
_chain: Middleware[];
_queued: Event[][];
_factory: Factory | null;
_logLevel: Level | null;
hasWarned: boolean;
}
declare global {
var __slf: Slf;
}
export declare class LoggerFactory {
static getLogger(name: string): Logger;
static setFactory(factory: Factory | null, level?: Level): void;
/**
* middleware has function(event, next)
* next should be called next(err, event);
*/
static use(middleware: Middleware): void;
private static getLogLevel;
}
export {};