@imsuzan0/log-emoji
Version:
Colorful emoji-powered console logger for Node.js with multiple log types, colors, and custom logs
81 lines (70 loc) • 3.79 kB
JavaScript
// ANSI colors & styles
const colors = {
reset: "\x1b[0m",
bold: "\x1b[1m",
dim: "\x1b[2m",
italic: "\x1b[3m",
underline: "\x1b[4m",
black: "\x1b[30m",
red: "\x1b[31m",
green: "\x1b[32m",
yellow: "\x1b[33m",
blue: "\x1b[34m",
magenta: "\x1b[35m",
cyan: "\x1b[36m",
white: "\x1b[37m",
brightBlack: "\x1b[90m",
brightRed: "\x1b[91m",
brightGreen: "\x1b[92m",
brightYellow: "\x1b[93m",
brightBlue: "\x1b[94m",
brightMagenta: "\x1b[95m",
brightCyan: "\x1b[96m",
brightWhite: "\x1b[97m",
// Extra background colors
bgRed: "\x1b[41m",
bgGreen: "\x1b[42m",
bgYellow: "\x1b[43m",
bgBlue: "\x1b[44m",
bgMagenta: "\x1b[45m",
bgCyan: "\x1b[46m",
bgWhite: "\x1b[47m",
};
// Timestamp helper
function timestamp() {
return new Date().toISOString();
}
// Logger object with many styles
export const log = {
success: (msg) => console.log(`${colors.green}✅ [SUCCESS] ${timestamp()} - ${msg}${colors.reset}`),
error: (msg) => console.log(`${colors.red}❌ [ERROR] ${timestamp()} - ${msg}${colors.reset}`),
warning: (msg) => console.log(`${colors.yellow}⚠️ [WARNING] ${timestamp()} - ${msg}${colors.reset}`),
info: (msg) => console.log(`${colors.blue}ℹ️ [INFO] ${timestamp()} - ${msg}${colors.reset}`),
debug: (msg) => console.log(`${colors.magenta}🐛 [DEBUG] ${timestamp()} - ${msg}${colors.reset}`),
// Process logs
start: (msg) => console.log(`${colors.cyan}🚀 [START] ${timestamp()} - ${msg}${colors.reset}`),
stop: (msg) => console.log(`${colors.brightRed}🛑 [STOP] ${timestamp()} - ${msg}${colors.reset}`),
complete: (msg) => console.log(`${colors.brightGreen}🏁 [COMPLETE] ${timestamp()} - ${msg}${colors.reset}`),
loading: (msg) => console.log(`${colors.yellow}⏳ [LOADING] ${timestamp()} - ${msg}${colors.reset}`),
update: (msg) => console.log(`${colors.brightBlue}🔄 [UPDATE] ${timestamp()} - ${msg}${colors.reset}`),
// File & data logs
save: (msg) => console.log(`${colors.brightBlue}💾 [SAVE] ${timestamp()} - ${msg}${colors.reset}`),
delete: (msg) => console.log(`${colors.brightRed}🗑️ [DELETE] ${timestamp()} - ${msg}${colors.reset}`),
upload: (msg) => console.log(`${colors.brightMagenta}📤 [UPLOAD] ${timestamp()} - ${msg}${colors.reset}`),
download: (msg) => console.log(`${colors.brightCyan}📥 [DOWNLOAD] ${timestamp()} - ${msg}${colors.reset}`),
search: (msg) => console.log(`${colors.brightYellow}🔍 [SEARCH] ${timestamp()} - ${msg}${colors.reset}`),
// Network & system
connect: (msg) => console.log(`${colors.green}🔌 [CONNECT] ${timestamp()} - ${msg}${colors.reset}`),
disconnect: (msg) => console.log(`${colors.red}❎ [DISCONNECT] ${timestamp()} - ${msg}${colors.reset}`),
retry: (msg) => console.log(`${colors.yellow}🔁 [RETRY] ${timestamp()} - ${msg}${colors.reset}`),
security: (msg) => console.log(`${colors.brightMagenta}🔒 [SECURITY] ${timestamp()} - ${msg}${colors.reset}`),
unlock: (msg) => console.log(`${colors.brightGreen}🔓 [UNLOCK] ${timestamp()} - ${msg}${colors.reset}`),
network: (msg) => console.log(`${colors.cyan}🌐 [NETWORK] ${timestamp()} - ${msg}${colors.reset}`),
// System states
crash: (msg) => console.log(`${colors.bgRed}${colors.white}💥 [CRASH] ${timestamp()} - ${msg}${colors.reset}`),
successAlt: (msg) => console.log(`${colors.bgGreen}${colors.white}🎉 [DONE] ${timestamp()} - ${msg}${colors.reset}`),
pending: (msg) => console.log(`${colors.brightYellow}🕒 [PENDING] ${timestamp()} - ${msg}${colors.reset}`),
// Custom logger
custom: (emoji, color, label, msg) =>
console.log(`${colors[color] || colors.reset}${emoji} [${label.toUpperCase()}] ${timestamp()} - ${msg}${colors.reset}`)
};