Files
ember-market-frontend/backend/utils/logger.js
2025-03-10 17:39:37 +00:00

77 lines
1.9 KiB
JavaScript

const colors = {
reset: "\x1b[0m",
bright: "\x1b[1m",
dim: "\x1b[2m",
underscore: "\x1b[4m",
blink: "\x1b[5m",
reverse: "\x1b[7m",
hidden: "\x1b[8m",
fgBlack: "\x1b[30m",
fgRed: "\x1b[31m",
fgGreen: "\x1b[32m",
fgYellow: "\x1b[33m",
fgBlue: "\x1b[34m",
fgMagenta: "\x1b[35m",
fgCyan: "\x1b[36m",
fgWhite: "\x1b[37m",
bgBlack: "\x1b[40m",
bgRed: "\x1b[41m",
bgGreen: "\x1b[42m",
bgYellow: "\x1b[43m",
bgBlue: "\x1b[44m",
bgMagenta: "\x1b[45m",
bgCyan: "\x1b[46m",
bgWhite: "\x1b[47m",
};
/**
* Formats a timestamp for logging.
* @returns {string} Formatted timestamp
*/
const getTimestamp = () => {
return new Date().toISOString();
};
/**
* Logs an INFO message.
* @param {string} message - Log message
* @param {Object} [data] - Additional data
*/
const info = (message, data = null) => {
console.log(`${colors.fgGreen}[INFO] ${getTimestamp()} - ${message}${colors.reset}`);
if (data) console.log(data);
};
/**
* Logs a WARNING message.
* @param {string} message - Log message
* @param {Object} [data] - Additional data
*/
const warn = (message, data = null) => {
console.warn(`${colors.fgYellow}[WARN] ${getTimestamp()} - ${message}${colors.reset}`);
if (data) console.warn(data);
};
/**
* Logs an ERROR message.
* @param {string} message - Log message
* @param {Object} [data] - Additional data
*/
const error = (message, data = null) => {
console.error(`${colors.fgRed}[ERROR] ${getTimestamp()} - ${message}${colors.reset}`);
if (data) console.error(data);
};
/**
* Logs a DEBUG message.
* @param {string} message - Log message
* @param {Object} [data] - Additional data
*/
const debug = (message, data = null) => {
console.log(`${colors.fgBlue}[DEBUG] ${getTimestamp()} - ${message}${colors.reset}`);
if (data) console.log(data);
};
export default { info, warn, error, debug };