enh(utils) refactor emitter to use Map and Set; update logging mechanism
This commit is contained in:
@@ -55,13 +55,13 @@ class Logger {
|
||||
/**
|
||||
* Logs a message with the specified level and options.
|
||||
*
|
||||
* @param {string} message - The message to be logged.
|
||||
* @param {array} data - The message to be logged.
|
||||
* @param {string} level - The log level (e.g., 'info', 'warn', 'error').
|
||||
* @param {object} [options] - The optional log options.
|
||||
* @param {number} [options.spamThreshold] - The spam threshold for duplicate messages.
|
||||
* @param {string} [options.namespace] - The namespace for the log message.
|
||||
*/
|
||||
static log(message, level, options = Logger.#defaultOptions) {
|
||||
static #log(data, level, options = Logger.#defaultOptions) {
|
||||
if (!Logger.#enabled) return;
|
||||
|
||||
const {
|
||||
@@ -69,65 +69,56 @@ class Logger {
|
||||
namespace,
|
||||
} = options;
|
||||
|
||||
if (Logger.#lastMessage === message) {
|
||||
if (Logger.#lastMessage === data) {
|
||||
if (spamThreshold <= Logger.#spamIndex) return;
|
||||
Logger.#spamIndex++;
|
||||
}
|
||||
|
||||
if (typeof console[level] === 'function') {
|
||||
console[level](
|
||||
`[${
|
||||
namespace ? namespace + ' - ' : ''
|
||||
}${level.toUpperCase()}] ${message}`
|
||||
`[${namespace ? namespace + ' - ' : ''}${level.toUpperCase()}]`,
|
||||
...data
|
||||
);
|
||||
} else {
|
||||
console.log(
|
||||
`[${namespace ? namespace + ' - ' : ''}LOG] ${message}`
|
||||
);
|
||||
console.log(`[${namespace ? namespace + ' - ' : ''}LOG]`, ...data);
|
||||
}
|
||||
|
||||
if (Logger.#lastMessage !== message) _spamIndex = 0;
|
||||
Logger.#lastMessage = message;
|
||||
if (Logger.#lastMessage !== data) this.#spamIndex = 0;
|
||||
Logger.#lastMessage = data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Logs an error message.
|
||||
* Logs an error.
|
||||
*
|
||||
* @param {string} message - The error message to log.
|
||||
* @param {object} options - The options for logging. Default is Logger.#defaultOptions.
|
||||
* @param {string} data - The error data to log.
|
||||
*/
|
||||
static error(message, options = Logger.#defaultOptions) {
|
||||
Logger.log(message, 'error', options);
|
||||
static error() {
|
||||
Logger.#log([...arguments], 'error');
|
||||
}
|
||||
|
||||
/**
|
||||
* Logs an informational message.
|
||||
* Logs an information.
|
||||
*
|
||||
* @param {string} message - The message to be logged.
|
||||
* @param {object} options - The options for logging. (optional)
|
||||
* @param {string} data - The data to be logged.
|
||||
*/
|
||||
static info(message, options = Logger.#defaultOptions) {
|
||||
Logger.log(message, 'info', options);
|
||||
static info() {
|
||||
Logger.#log([...arguments], 'info');
|
||||
}
|
||||
|
||||
/**
|
||||
* Logs a warning message.
|
||||
* Logs a warning.
|
||||
*
|
||||
* @param {string} message - The warning message to be logged.
|
||||
* @param {object} options - The options for logging. Default is Logger.#defaultOptions.
|
||||
* @param {string} data - The warning data to be logged.
|
||||
*/
|
||||
static warn(message, options = Logger.#defaultOptions) {
|
||||
Logger.log(message, 'warn', options);
|
||||
static warn() {
|
||||
Logger.#log([...arguments], 'warn');
|
||||
}
|
||||
|
||||
/**
|
||||
* Logs a warning message.
|
||||
*
|
||||
* @param {string} message - The warning message to be logged.
|
||||
* @param {object} [options=Logger.#defaultOptions] - The options for the warning log.
|
||||
* wrapper for logging warnings.
|
||||
*/
|
||||
static warning(message, options = Logger.#defaultOptions) {
|
||||
Logger.warn(message, options);
|
||||
static warning() {
|
||||
Logger.#log([...arguments], 'warn');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user