UNPKG

log-vault

Version:

A generator of Winston logger instance with pre-defined configurable transports and formats and extra functionality.

140 lines 4.09 kB
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