metalog
Version:
Logger for Metarhia
47 lines (43 loc) • 1.16 kB
TypeScript
import { EventEmitter } from 'node:events';
interface LoggerOptions {
path: string;
home: string;
workerId?: number;
createStream?: () => NodeJS.WritableStream;
writeInterval: number;
writeBuffer: number;
keepDays: number;
json?: boolean;
toFile?: Array<string>;
toStdout?: Array<string>;
}
export class Logger extends EventEmitter {
active: boolean;
path: string;
workerId: string;
createStream: () => NodeJS.WritableStream;
writeInterval: number;
writeBuffer: number;
keepDays: number;
home: string;
stream: NodeJS.WritableStream;
reopenTimer: NodeJS.Timer;
flushTimer: NodeJS.Timer;
lock: boolean;
buffer: Array<Buffer>;
bufferLength: number;
file: string;
toFile: Record<string, boolean>;
fsEnabled: boolean;
toStdout: Record<string, boolean>;
console: Console;
constructor(args: LoggerOptions);
createLogDir(): Promise<void>;
open(): Promise<Logger>;
close(): Promise<void>;
rotate(): Promise<void>;
write(type: string, s: string): void;
flush(callback: Function): void;
normalizeStack(stack: string): string;
}
export function openLog(args: LoggerOptions): Promise<Logger>;