@node-elion/utils
Version:
Super scalable enterprise Node.js server library
77 lines (76 loc) • 2.84 kB
TypeScript
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;
}