We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
i have a custom debug for my app in development mode (code below).
in the browser it shows great:
but in vscode it shows in multiline:
i dont care if i cant see the colors, but the multiline i dont like it... the important part of the code is the next:
console.log( `%c[%c${source}%c/%c${level.toUpperCase()}%c] %c:`, "color: inherit", sourceStyle, "color: inherit", levelStyle, "color: inherit", "color: inherit", ...message );
for each color change, it creates a new line in the debugger 🌵
class Debug { /** * Registra un mensaje de log con el nivel especificado y los datos asociados. * * @param {("debug" | "info" | "warn" | "error" | "fatal")} level - El nivel de log a registrar (ej: "info", "error"). * @param {("webServer" | "webClient" | "react" | "database" | "websocket" | "DebugWebsocket" | "api" | "bundler" | "server")} source - La fuente que genera el log. * @param {...any} data - Los datos adicionales que se registrarán en el log. */ static log(level, source, ...data) { const logEntry = { level, source, timestamp: new Date().toLocaleString(), message: data, format: "log" }; this.showMessage(level, source, data) this.printLog(logEntry); } static printLog({ timestamp, source, level, message }) { const sourceStyle = Debug.getSourceStyle(source); const levelStyle = Debug.getLevelStyle(level); console.log( `%c[%c${source}%c/%c${level.toUpperCase()}%c] %c:`, "color: inherit", sourceStyle, "color: inherit", levelStyle, "color: inherit", "color: inherit", ...message ); } static getSourceStyle(source) { const sourceColorMap = { webServer: "color: yellow", webClient: "color: lightyellow", react: "color: lightcyan", database: "color: green", websocket: "color: magenta", DebugWebsocket: "color: lightyellow", api: "color: cyan", bundler: "color: blue", server: "color: lightcoral" }; return sourceColorMap[source] || "color: inherit"; } static getLevelStyle(level) { const levelColorMap = { debug: "color: yellow", info: "color: green", warn: "color: lightyellow", error: "color: red", fatal: "color: lightcoral" }; return levelColorMap[level] || "color: inherit"; } /* * Crea un elemento para mostrar un mensaje en pantalla. * * @param {("debug" | "info" | "warn" | "error" | "fatal")} level * @param {("webServer" | "webClient" | "react" | "database" | "websocket" | "DebugWebsocket" | "api" | "bundler" | "server")} title * @param {...any} message */ static showMessage(level, title, ...message) { let container = document.getElementById('message-container'); if (!container) { container = document.createElement('div'); container.id = 'message-container'; document.body.appendChild(container); container.style.position = 'fixed'; container.style.bottom = '10px'; container.style.left = '10px'; container.style.display = 'flex'; container.style.flexDirection = 'column'; container.style.gap = '10px'; container.style.maxWidth = '90vw'; container.style.zIndex = '9999'; } let messageElem = document.createElement('div'); messageElem.className = 'message'; let levelColors = { 'debug': '#e0e0e0', 'info': '#2196f3', 'warn': '#ff9800', 'error': '#f44336', 'fatal': '#b71c1c' }; messageElem.style.border = '1px solid #ccc'; messageElem.style.borderLeft = '5px solid ' + (levelColors[level] || '#ccc'); messageElem.style.borderRadius = '4px'; messageElem.style.padding = '10px'; messageElem.style.backgroundColor = 'gray'; messageElem.style.opacity = '0.8' messageElem.style.boxShadow = '0 2px 4px rgba(0,0,0,0.1)'; messageElem.style.position = 'relative'; messageElem.style.minWidth = "150px" messageElem.style.opacity = '0'; messageElem.style.transform = 'translateX(-20px)'; messageElem.style.transition = 'opacity 0.3s ease-out, transform 0.3s ease-out'; requestAnimationFrame(() => { messageElem.style.opacity = '1'; messageElem.style.transform = 'translateX(0)'; }); let titleElem = document.createElement('strong'); titleElem.innerText = title; messageElem.appendChild(titleElem); let levelElem = document.createElement('span'); levelElem.innerText = ' [' + level + ']'; levelElem.style.fontSize = '10px' messageElem.appendChild(levelElem); let messageContent = document.createElement('div'); messageContent.innerText = message.join(' '); messageContent.style.fontSize = '12px'; messageContent.style.marginTop = '5px'; messageElem.appendChild(messageContent); let closeButton = document.createElement('button'); closeButton.innerText = 'X'; closeButton.style.position = 'absolute'; closeButton.style.top = '5px'; closeButton.style.right = '5px'; closeButton.style.border = 'none'; closeButton.style.background = 'transparent'; closeButton.style.cursor = 'pointer'; closeButton.style.fontSize = '14px'; closeButton.onclick = function () { container.removeChild(messageElem); }; messageElem.appendChild(closeButton); container.appendChild(messageElem); setTimeout(function () { if (container.contains(messageElem)) { container.removeChild(messageElem); } }, 5000); } } globalThis.debug = Debug;
The text was updated successfully, but these errors were encountered:
No branches or pull requests
i have a custom debug for my app in development mode (code below).
in the browser it shows great:
but in vscode it shows in multiline:
i dont care if i cant see the colors, but the multiline i dont like it... the important part of the code is the next:
for each color change, it creates a new line in the debugger 🌵
The text was updated successfully, but these errors were encountered: