Hello,
Yes, it is possible to limit the computation of caller info by a user
defined criteria, including the presence of an exception. The %caller
conversion word [1] takes an evaluator as a second parameter. Quoting
from the docs:
This conversion word can also use evaluators to test logging events
against a given criterion before creating the output. For example,
using %caller{3, CALLER_DISPLAY_EVAL} will display three lines of
stacktrace, only if the evaluator called CALLER_DISPLAY_EVAL returns a
positive answer.
Evaluators are described at [2]. See also [3].
Here is a sample configuration file for your use case:
<configuration>
<evaluator name="CALLER_EVAL">
<expression>throwable != null</expression>
</evaluator>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>
[%thread] %level - %msg%n%caller{6, CALLER_EVAL}
</pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="STDOUT" />
</root>
</configuration>
I hope this helps,
--
Ceki
http://twitter.com/#!/ceki
[1] http://logback.qos.ch/manual/layouts.html#conversionWord
[2] http://logback.qos.ch/manual/layouts.html#Evaluators
[3] http://logback.qos.ch/manual/filters.html#JaninoEventEvaluator
On 04.07.2012 17:21, lopardo . wrote:
Hi. Is it possible to log method name and line number only for
exceptions? Or set a different pattern, but only for exceptions?
That way I could log more info, even if it's slower to process, for some
exceptions.
Thanks.
Regards,
lopardo.
_______________________________________________
Logback-user mailing list
[email protected]
http://mailman.qos.ch/mailman/listinfo/logback-user