log-vault
Version:
A generator of Winston logger instance with pre-defined configurable transports and formats and extra functionality.
140 lines • 4.09 kB
TypeScript
import { Processor, WorkerOptions, QueueOptions, RedisJobOptions } from "bullmq";
import { TruncateOptions } from "obj-walker";
import { InspectOptions } from "util";
import { LoggerOptions } from "winston";
import DailyRotateFile from "winston-daily-rotate-file";
import { MongoDBConnectionOptions } from "winston-mongodb";
import TransportStream from "winston-transport";
import { AbstractConfigSetColors } from "winston/lib/winston/config";
import { ConsoleTransportOptions } from "winston/lib/winston/transports";
import Transport from "winston-transport";
export interface LogVaultConstructorOptions extends LoggerOptions {
projectName?: string;
truncateOptions?: TruncateOptions;
maskOptions?: LogVaultMaskFieldsOptions;
}
export interface LogVaultConsoleOptions extends ConsoleTransportOptions {
colors?: AbstractConfigSetColors;
inspectOptions?: InspectOptions;
}
export interface LogVaultFormatArrangeOutput {
truncateOptions: TruncateOptions;
}
export interface LogVaultMaskFieldsOptions {
fields: string[];
maskLabel?: string;
replacers?: ITextReplacer[];
}
export type ITextReplacer = [RegExp, (substring: string, ...args: any[]) => string];
export interface LogVaultCaptureConsoleOptions {
matchLevels: {
log: string;
warn: string;
info: string;
error: string;
};
}
export type LogVaultFilesOptions = DailyRotateFile.DailyRotateFileTransportOptions & {
errorLevel?: string;
};
export interface LogVaultMongoOptions extends MongoDBConnectionOptions {
handleExceptions?: boolean;
handleRejections?: boolean;
}
export interface LogVaultLokiOptions extends TransportStream.TransportStreamOptions {
host?: string;
basicAuth?: string;
headers?: object;
interval?: number;
json?: boolean;
batching?: boolean;
labels?: object;
clearOnError?: boolean;
replaceTimestamp?: boolean;
gracefulShutdown?: boolean;
timeout?: number;
onConnectionError?(error: unknown): void;
}
export interface LogOptionsOpts {
meta: Meta;
}
export interface Meta {
[key: string]: string | number;
}
export interface MatchPattern {
level?: string;
match?: {
meta?: Meta;
message?: string | RegExp;
};
exclude?: {
meta?: Meta;
message?: string | RegExp;
};
}
export interface NotificatorConstructorOptions {
queueName?: string;
workerOpts?: Partial<WorkerOptions>;
}
export interface NotificationChannelOptions {
matchPatterns?: MatchPattern[];
inspectOptions?: InspectOptions;
}
export interface TelegramNotificationChannelOptions extends NotificationChannelOptions {
token: string;
chatId: number;
host?: string;
template?: string;
workerOptions?: Partial<WorkerOptions>;
queueOptions?: Partial<QueueOptions>;
jobOptions?: Partial<RedisJobOptions>;
}
export interface NotificationChannelProcessOpts {
processor: Processor;
workerOptions?: Partial<WorkerOptions>;
queueName: string;
queueOptions?: Partial<QueueOptions>;
jobOptions?: RedisJobOptions;
}
export interface NotificationTransportOptions extends Transport.TransportStreamOptions {
name?: string;
queueOptions?: QueueOptions;
jobOptions?: RedisJobOptions;
}
export interface NotificatonTransportLogItem {
timestamp?: string;
level: string;
message?: string;
meta?: Meta;
}
export declare enum TextColor {
black = "black",
red = "red",
green = "green",
yellow = "yellow",
blue = "blue",
magenta = "magenta",
cyan = "cyan",
white = "white",
gray = "gray"
}
export declare enum BgColor {
blackBG = "blackBG",
redBG = "redBG",
greenBG = "greenBG",
yellowBG = "yellowBG",
blueBG = "blueBG",
magentaBG = "magentaBG",
cyanBG = "cyanBG",
whiteBG = "whiteBG"
}
export declare enum FontStyle {
bold = "bold",
dim = "dim",
italic = "italic",
underline = "underline",
inverse = "inverse",
hidden = "hidden",
strikethrough = "strikethrough"
}
//# sourceMappingURL=types.d.ts.map