UNPKG

loglevelnext

Version:

A modern logging library for Node.js and modern browsers that provides log level mapping to the console

101 lines (96 loc) 3.32 kB
interface PrefixTemplateOptions { level: string; logger: LogLevel; } type PrefixTemplateFn = (options: PrefixTemplateOptions) => string; interface PrefixFactoryOptions { [key: string]: PrefixTemplateFn | string | undefined; level?: PrefixTemplateFn; name?: PrefixTemplateFn; template?: string; time?: PrefixTemplateFn; } declare class PrefixFactory extends MethodFactory { private options; constructor(logger?: LogLevel, options?: PrefixFactoryOptions); interpolate(level: string): string; make(methodName: string): (...args: any[]) => void; } type SomeLevel = number | string; interface LogLevelIndex { [key: string]: any; } interface LogLevelOptions { factory?: Factory; id?: string; level?: number | string; name?: string; prefix?: PrefixFactoryOptions; } declare class LogLevel<TLevels extends FactoryLevels = typeof defaultLevels> implements LogLevelIndex { [key: string]: any; name: string; type: string; private currentLevel; private methodFactory; private options; constructor(options: LogLevelOptions); get level(): TLevels[keyof TLevels]; get levels(): TLevels; get factory(): Factory<TLevels>; set factory(factory: Factory<TLevels>); set level(logLevel: SomeLevel); disable(): void; enable(): void; } interface BindTarget { [key: string]: Function; } type FactoryLevels = Record<Uppercase<string>, number> & { DEBUG: number; ERROR: number; INFO: number; SILENT: number; TRACE: number; WARN: number; }; declare const defaultLevels: FactoryLevels; declare const levels: unique symbol; declare const instance: unique symbol; interface Factory<TLevels extends FactoryLevels = typeof defaultLevels> { [key: string]: any; bindMethod: (obj: BindTarget, methodName: string) => any; distillLevel: (level: number | string) => any; [instance]: LogLevel | undefined; levelValid: (level: number) => boolean; [levels]: TLevels; levels: TLevels; logger: LogLevel; make: (methodName: string) => Function; methods?: string[]; replaceMethods: (logLevel: number | string) => void; } type MethodFactoryLevels = Lowercase<keyof FactoryLevels>; declare class MethodFactory<TLevels extends FactoryLevels = typeof defaultLevels> implements Factory<TLevels> { [instance]: LogLevel | undefined; [levels]: TLevels; constructor(logger?: LogLevel); get levels(): TLevels; get logger(): LogLevel; get methods(): string[]; set logger(logger: LogLevel); bindMethod(obj: BindTarget, methodName: string): any; distillLevel(level: number | string): number | null; levelValid(level: number): boolean; make(methodName: string): Function; replaceMethods(logLevel: number | string): void; } declare class DefaultLogger extends LogLevel { private cache; constructor(); get factories(): any; get loggers(): Record<string, LogLevel<FactoryLevels>>; create(opts: LogLevelOptions | string): LogLevel<FactoryLevels>; } declare const _default: DefaultLogger; export { Factory, FactoryLevels, LogLevel, LogLevelIndex, LogLevelOptions, MethodFactory, MethodFactoryLevels, PrefixFactory, PrefixFactoryOptions, PrefixTemplateFn, PrefixTemplateOptions, _default as default, defaultLevels };