UNPKG

@backs/logger

Version:

An advanced logger using winston & colorette behind the scenes

135 lines (131 loc) 3.51 kB
import * as table from 'table'; import { TableUserConfig, StreamUserConfig } from 'table'; import { transport, Logger as Logger$1 } from 'winston'; import { Color } from 'colorette'; import progress from 'progress'; interface LoggerOptions<T extends string[]> { levels?: T; colors?: Record<T[number], Color>; transports?: transport[]; log?: Record<T[number], boolean | (() => boolean)>; handlers?: Record<T[number], (logger: Logger$1, message: any, ...args: any[]) => void>; disableColors?: boolean; } type TypedLogger<T extends string[]> = Logger<T> & { [K in T[number]]: (message: any, ...args: any[]) => TypedLogger<T>; }; declare const colorMap: { b: Color; bb: Color; bbr: Color; bbbr: Color; r: Color; br: Color; rbr: Color; brbr: Color; g: Color; bg: Color; gbr: Color; bgbr: Color; y: Color; by: Color; ybr: Color; bybr: Color; bl: Color; bbl: Color; blbr: Color; bblbr: Color; m: Color; bm: Color; mbr: Color; bmbr: Color; c: Color; bc: Color; cbr: Color; bcbr: Color; w: Color; bw: Color; wbr: Color; bwbr: Color; gr: Color; black: Color; bgBlack: Color; blackBright: Color; bgBlackBright: Color; red: Color; bgRed: Color; redBright: Color; bgRedBright: Color; green: Color; bgGreen: Color; greenBright: Color; bgGreenBright: Color; yellow: Color; bgYellow: Color; yellowBright: Color; bgYellowBright: Color; blue: Color; bgBlue: Color; blueBright: Color; bgBlueBright: Color; magenta: Color; bgMagenta: Color; magentaBright: Color; bgMagentaBright: Color; cyan: Color; bgCyan: Color; cyanBright: Color; bgCyanBright: Color; white: Color; bgWhite: Color; whiteBright: Color; bgWhiteBright: Color; gray: Color; }; declare const modifiersMap: { d: Color; h: Color; i: Color; u: Color; s: Color; b: Color; r: Color; dim: Color; hidden: Color; italic: Color; underline: Color; strikethrough: Color; bold: Color; reset: Color; }; declare const argumentRegex: RegExp; declare function createLogger<T extends string[] = ["error", "warn", "debug", "log", "info"]>(options?: LoggerOptions<T>): TypedLogger<T>; declare class Logger<T extends string[] = ["error", "warn", "debug", "log", "info"]> { private colorEnabled; private options; logger: Logger$1; get isColorEnabled(): boolean; constructor(options?: LoggerOptions<T>); private DEFAULT_LEVELS; private DEFAULT_COLORS; private DEFAULT_FORMAT; private DEFAULT_FILEFORMAT; private DEFAULT_TRANSPORTS; /** * Documentation available [here](https://www.npmjs.com/package/table). */ table(data: unknown[][], config?: TableUserConfig): void; /** * Documentation available [here](https://www.npmjs.com/package/table). */ createTableStream(config: StreamUserConfig): table.WritableStream; /** * Documentation available [here](https://www.npmjs.com/package/progress). */ progress(format: string, total: number): progress; color(color: Color, text: string): string; resolveLevel(level: string): string; stringifyArg(arg: any): any; formatArgs(message: string, args: any[]): string; } export { Logger, type LoggerOptions, type TypedLogger, argumentRegex, colorMap, createLogger as default, modifiersMap };