On 16.05.2012 15:27, Y M wrote:

> Hello,

> My situation is this: on certain specific and frequent log
> statements, I need the stacktrace to identify the method that needs to
> be investigated. However, the whole stacktrace is too long and
> unnecessary in this case (it is generating too much logging and
> garbage), but in every other, it is useful. I'd like to change the
> layout for this situation, and use %throwable{5}, for example.
>
> So, I found nothing on the manual similar to this, and nothing
> searching around, maybe I'll need a custom class. If so, how could I
> do it? Multiple filtered appenders writing to the same file seems too
> much overhead and troublesome- I think the best approach would be a
> custom encoder, and do the selection inside 'doEncode', based on some
> event parameter, probably a specific marker. I'm just analyzing the
> possibilities, no coding yet, so I'm not aware of any shortcomings or
> limitations.

There is support exactly for this type of situation. See the docs for
PatternLayout [1]. In particular, the docs on %ex conversion
word. Here is the relevant quote:

This conversion word can also use evaluators to test logging events
against a given criterion before creating the output. For example,
using %ex{full, EX_DISPLAY_EVAL} will display the full stack trace of
the exception only if the evaluator called EX_DISPLAY_EVAL returns a
negative answer. Evaluators are described further down in this
document.

Refer to [2] for evaluators.

Let us know if this approach works for you.


[1] http://logback.qos.ch/manual/layouts.html#ClassicPatternLayout
[2] http://logback.qos.ch/manual/layouts.html#Evaluators

--
Ceki
http://twitter.com/#!/ceki
_______________________________________________
Logback-user mailing list
[email protected]
http://mailman.qos.ch/mailman/listinfo/logback-user

Reply via email to