Быстрый и грязный способ это:
logger.warn ("your_message_here \ n {}", err.toString ());
Лучшим способом было бы написать свой собственный спецификатор преобразования (см. руководство по возврату ), чтобы настраиваемая обработка ошибок абстрагировалась от кода вашего приложения, и вы можете настроить его использование с помощью специального слова преобразования в ваш logback.xml.
Вот простой пример, который будет делать то, что вы ищете:
package com.example.logging;
import ch.qos.logback.classic.pattern.ClassicConverter;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.classic.spi.IThrowableProxy;
import ch.qos.logback.classic.spi.ThrowableProxy;
/**
* Simple exception converter.
*
*/
public class MyExceptionConverter extends ClassicConverter {
/* (non-Javadoc)
* @see ch.qos.logback.core.pattern.Converter#convert(java.lang.Object)
*/
@Override
public String convert(ILoggingEvent event) {
IThrowableProxy itp = event.getThrowableProxy();
if (itp instanceof ThrowableProxy) {
ThrowableProxy tp = (ThrowableProxy)itp;
return tp.getThrowable().toString();
}
return "";
}
}
Тогда в вашем logback.xml вам нужно ссылаться на него так:
<conversionRule conversionWord="myCon"
converterClass="com.example.logging.MyExceptionConverter" />
А затем используйте% myCon в шаблоне кодера следующим образом:
<encoder>
<pattern>%d{dd MMM yyyy HH:mm:ss.SSS} %logger{0}: %myCon %nopex%n</pattern>
</encoder>
Обратите внимание, что добавление% nopex останавливает обычную обработку исключений