fallout-utility
Version:
<h1 align="center"> fallout-utility <br> </h1>
72 lines (71 loc) • 2.77 kB
TypeScript
/// <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;
}