@backs/logger
Version:
An advanced logger using winston & colorette behind the scenes
135 lines (131 loc) • 3.51 kB
text/typescript
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 };