JavaScript Console Formatter
Copying a browser console into a bug report usually produces a wall of timestamps, file links such as app.js:42, “Download the React DevTools” hints and the same message fifty times. Paste it here to get a readable log: timestamps and source links removed, tooling noise dropped, repeated lines collapsed with a count, JSON pretty-printed, and errors and warnings labelled so you can filter to just the problems.
- Runs in your browser
- No sign-up
- Free to use
How to use JavaScript Console Formatter
- Copy the output from the browser console or a terminal.
- Paste it into the left box.
- Choose what to remove and which messages to show.
- Copy the cleaned log into your issue or chat.
JavaScript Console Formatter features
Timestamps removed
Clock times and ISO timestamps at the start of lines.
Source links removed
app.js:12, VM412:4 and (index):45 at the end of lines.
Noise filter
HMR, Vite, webpack-dev-server and DevTools messages.
Repeats collapsed
Identical consecutive lines become one line with ×N.
JSON pretty-printed
Objects logged as JSON become readable blocks.
Level filter
Show everything, errors and warnings, or errors only.
When to use JavaScript Console Formatter
- Attaching a clean log to a bug report or pull request.
- Sharing console output with a teammate in chat.
- Finding the first error in a long, noisy log.
- Reading JSON payloads that were logged on one line.
JavaScript Console Formatter FAQ
Which consoles are supported?
Text copied from Chrome, Edge, Firefox and Safari developer tools and from Node.js terminals. Each line is treated as a message; indented “at …” lines stay with the error above them.
How are errors and warnings detected?
From the text: lines starting with Uncaught, Error, a TypeError-style prefix or “Failed to load resource” count as errors, and lines starting with Warning, [Violation] or similar as warnings. Colours from the console are not part of copied text.
What counts as noise?
Messages from development tools rather than your app, such as hot-reload status, “Download the React DevTools” and source-map warnings. Untick the option to keep them.
Will collapsing hide information?
Only identical consecutive lines are merged, and the count is shown, so you still know how often a message appeared.
Can I save the console directly?
In Chrome DevTools, right-click the console and choose “Save as…” to get a file that you can open here.
Is the log uploaded?
No. Formatting happens in your browser.
Making console output shareable
The browser console is designed for interactive use: clickable source links, expandable objects, colours and grouping. When its content is copied as text, much of that turns into clutter. Each line carries a link to its source file, timestamps appear if they are enabled, framework tools add their own status messages, and logs inside render functions repeat the same line many times.
The formatter cleans this up line by line. Timestamps at the start of a line and source links at the end are removed with patterns that match the formats used by Chrome, Firefox, Safari and Node.js. Messages that come from development tooling rather than from the application, such as Vite’s hot-module messages or the React DevTools hint, are removed when the noise filter is on.
Repeated lines are a common symptom worth seeing but not worth reading fifty times. Consecutive identical lines are collapsed into one with a count, which often reveals a render loop or a polling bug at a glance. Stack trace lines that start with “at” stay attached to the error they belong to.
Logged data becomes readable too. When a line is, or ends with, a JSON object or array, it is pretty-printed with indentation. This is especially useful for API responses that were logged with JSON.stringify on a single line.
Finally, each message is classified as an error, a warning or a normal log line from its text, and the level filter can reduce the output to just the problems. The result is plain text that reads well in GitHub issues, tickets and chat messages.