views:

176

answers:

4

I'm looking for a Log4J Layout/Formatter that helps me prune stack-traces in exceptions a little better than the defaults. That the stack-execution is somewhere below main() is quite obvious and unnecessary for me to know, and that the exception occurred deeply within some other library is really nothing I can do too much about.

What I would like is a Layout that trims the stack-trace to, say the last 5 method-calls of method within my own code, identified by containing jar-file, package or something else.

Is there something along these lines, or do I have to write some magic myself?

A: 

There are three ways to do this:

  1. Find a library or code that someone else did
  2. Write it yourself (extend/implement)
  3. Use the default Layout, but prune the exception's stack before passing it to logger
Azder
Thank you, I know that I can do it myself. I was asking whether there already are something that (partially?) solves this. The inflection-parts are a bit over my head.
Rawler
A: 

You can write a custom Appender that has the special logic you need. That might be a good way to go.

duffymo
+1  A: 

I asked a similar question (about completely suppressing the stack trace a while back.

Unfortunately, there is no setting for that, you need to subclass PatternLayout to do it.

Thilo
A: 

The "ex" or "exception" conversion word in logback-classic (log4j's successor) supports printing the specified number of stack trace lines. The "ex" conversion word is documented with the rest of conversion words. You need to scroll down a little.

If you need further information on this topic, please contact the logback-user mailing list.

Ceki