UNPKG

@node-elion/utils

Version:

Super scalable enterprise Node.js server library

77 lines (76 loc) 2.84 kB
import { LoggerLevels, LoggerMessage } from "./types.js"; import { Optional } from "../types.js"; export type LoggerOptions = { name?: string; level?: LoggerLevels; callback?: (info: LoggerMessage) => void | Promise<void>; parentLogger?: Logger; }; export type LoggerChildOptions = Optional<Required<Omit<LoggerOptions, "callback">>, "level">; export declare class Logger { private options; name: string; nameLevel: string[]; callback: (info: LoggerMessage) => void | Promise<void>; level: LoggerLevels; static child(options: LoggerChildOptions): Logger; constructor(options?: LoggerOptions); child(options: Omit<LoggerChildOptions, "parentLogger">): Logger; child(name: string): Logger; private execute; /** * Logs error messages. * Use this logger level to log errors that occur during your program's execution. * @param message The error message(s) to log */ error(...message: any[]): void; /** * Logs warning messages. * Use this logger level to log non-error messages that could potentially lead to application errors. * @param message The warning message(s) to log */ warn(...message: any[]): void; /** * Logs basic information messages. * Use this logger level for informational messages to track your application's normal behavior. * @param message The information message(s) to log */ info(...message: any[]): void; /** * Also logs informational messages. The same as the info logger level. * @param message The message(s) to log */ log(...message: any[]): void; /** * Logs HTTP requests. * Use this logger level to log the details of HTTP requests and responses. * @param message The HTTP request/response message(s) to log */ http(...message: any[]): void; /** * Provides detailed logs. Use this logger level for detailed debug information beyond what you'd log for debugging. * @param message The message(s) to log in verbose mode */ verbose(...message: any[]): void; /** * Logs debug-level messages. Use this logger level to log information helpful in debugging. * @param message The debug message(s) to log */ debug(...message: any[]): void; /** * Provides the most detailed logs. * This is the highest level of logging and includes all levels of messages. * @param message The message(s) to log in silly mode */ silly(...message: any[]): void; /** * Also provides the most detailed logs. * The same as the silly logger level. * @param message The message(s) to log in trace mode */ trace(...message: any[]): void; } export interface ILogger { new (options?: LoggerOptions): Logger; child(options: LoggerChildOptions): Logger; }