import pino from "pino";
interface LogFn {
<T extends object>(obj: T, msg?: string, ...args: unknown[]): void;
(obj: unknown, msg?: string, ...args: unknown[]): void;
(msg: string, ...args: unknown[]): void;
}
const pinoInfo = pino(pino.destination("./log/log_info.txt"));
const pinoError = pino(pino.destination("./log/log_error.txt"));
const pinoTrace = pino(pino.destination("./log/log_trace.txt"));
const pinoDebug = pino(pino.destination("./log/log_debug.txt"));
const pinoWarn = pino(pino.destination("./log/log_warn.txt"));
const pinoFatal = pino(pino.destination("./log/log_fatal.txt"));
export const logger = {
info: ((...args: unknown[]) => {
pinoInfo.info(args);
}) as LogFn,
error: ((...args: unknown[]) => {
pinoError.error(args);
}) as LogFn,
trace: ((...args: unknown[]) => {
pinoTrace.trace(args);
}) as LogFn,
debug: ((...args: unknown[]) => {
pinoDebug.debug(args);
}) as LogFn,
warn: ((...args: unknown[]) => {
pinoWarn.warn(args);
}) as LogFn,
fatal: ((...args: unknown[]) => {
pinoFatal.info(args);
}) as LogFn,
};