Skip to content
Shrake DevTools
  • JSON FormatterData & Format
  • JSON ValidatorData & Format
  • JSON MinifierData & Format
  • JSON ↔ YAML ConverterData & Format
  • XML FormatterData & Format
  • Base64 Encoder / DecoderData & Format
  • URL Encoder / DecoderData & Format
  • JWT InspectorData & Format
↑ ↓ to navigate↵ to openEsc to close

Java Stack Trace Formatter

Clean up Java stack traces, highlight application frames and find the root cause.

Runs locally in your browser. Your input is not uploaded.Free, no sign-up

Stack trace or log

How to use the Java Stack Trace Formatter

  1. Paste a stack trace, or a chunk of log that contains one, or click Sample for a real Spring Boot error.
  2. The root cause is shown first: the last Caused by in the chain, and the line in your code where it surfaced.
  3. Your code is highlighted and framework frames are folded. Set Your base package (for example com.acme) to highlight exactly your packages.
  4. Copy the formatted trace to share it in a ticket or chat without hundreds of framework lines.

Reading a Java stack trace

  • The first line is the exception that reached the top, often a wrapper like DataIntegrityViolationException.
  • Each Caused by is the exception that caused the one above. The last one is usually the real problem, like a PSQLException saying which constraint failed.
  • ... 98 more means those frames are identical to the ones in the exception above, so they're left out.
  • Frames read from the top (where it was thrown) to the bottom (where the thread started). The first frame in your own code is usually where to look.

What counts as framework code?

The JDK, Spring, Hibernate, Tomcat, Jetty, Netty, Jackson, logging, JDBC drivers, connection pools and many common libraries, plus generated classes such as Spring CGLIB proxies and JDK dynamic proxies. Everything else is treated as your code unless you set a base package.

Frequently asked questions

Is my log uploaded?

No. Parsing happens in your browser. Logs often contain customer data and internal hostnames; they never leave your machine.

Does it work with Kotlin, Scala and Logback output?

Yes. It understands module prefixes like java.base/, Logback's ~[jar:version] suffixes, ... common frames omitted, suppressed exceptions and logs with several traces.