UNPKG

fallout-utility

Version:
72 lines (71 loc) 2.77 kB
/// <reference types="node" /> /// <reference types="node" /> import { Stats, WriteStream } from 'node:fs'; import { InspectOptions } from 'node:util'; import { TypedEmitter } from './TypedEmitter'; import { Awaitable } from '../../types'; export declare enum LoggerLevel { INFO = 1, WARN = 2, ERROR = 3, DEBUG = 4 } export interface LoggerOptions { formatMessage?: (message: string, level: LoggerLevel, logger: Logger) => string; /** * @deprecated Use {@link LoggerOptions.formatMessage} instead */ formatMessageLines?: { [level: number]: ((message: string, logger: Logger) => string) | undefined; }; objectInspectOptions?: InspectOptions | null; enableDebugmode?: boolean | null; forceEmitLogEvents?: boolean | null; writeStream?: WriteStream | null; name?: string | null; parent?: Logger | null; } export interface LoggerFileWriteStreamOptions { file: string; renameOldFile?: boolean; handleOldFile?: (file: string) => Awaitable<void>; } export interface LoggerEvents { log: [message: string]; warn: [message: string]; err: [message: string]; debug: [message: string]; } export declare class Logger extends TypedEmitter<LoggerEvents> { readonly parent?: Logger; formatMessage?: (message: string, level: LoggerLevel, logger: Logger) => string; formatMessageLines: Exclude<LoggerOptions['formatMessageLines'], undefined>; objectInspectOptions?: InspectOptions; enableDebugmode: boolean | null; forceEmitLogEvents: boolean; writeStream?: WriteStream; name?: string; get isDebugging(): boolean; constructor(options?: LoggerOptions); emit<K extends keyof LoggerEvents>(eventName: K, ...args: LoggerEvents[K]): boolean; emit<K extends string | symbol>(eventName: K, ...args: any): boolean; info(...message: any[]): void; warn(...message: any[]): void; err(...message: any[]): void; log(...messages: any[]): void; warning(...messages: any[]): void; error(...messages: any[]): void; debug(...messages: any[]): void; /** * @deprecated Use {@link Logger.createFileWriteStream} instead */ logToFile(filePath: string, keepOldFile?: boolean, renameFileName?: string | ((stat: Stats) => string)): this; createFileWriteStream(options: LoggerFileWriteStreamOptions): Promise<this>; setDebugMode(enabled: boolean | null): this; setName(name: string): this; setWriteStream(writeStream: WriteStream, close?: boolean): this; closeWriteStream(): this; clone(options?: LoggerOptions): Logger; protected _print(messages: any[], level: LoggerLevel): string[]; protected _write(message: string, level: LoggerLevel, logToConsole?: boolean, logToFile?: boolean): void; }