2016-07-20 12 views
0

У меня есть контроллер пружины, который возвращает исключение, сделанное пользователем. Однако я не хочу, чтобы это конкретное исключение вызывало «Log.Error()» К сожалению, Feign записывает его таким образом автоматически.Модифицировать поведение журнала регистрации для определенных исключений

Есть ли способ изменить это поведение?

Спасибо.

ответ

0

По-видимому, это была не проблема, это проблема, но встроенный Tomcat, который записывал журнал.

Мы смогли добавить «TurboFilter» в Logger, чтобы предотвратить это конкретное исключение из решений его пути к нашим бревнам:

import ch.qos.logback.classic.Level; 
import ch.qos.logback.classic.Logger; 
import ch.qos.logback.classic.turbo.TurboFilter; 

// o.a.c.c.C is the name of the Apache Tomcat logger 
Logger root = (Logger) LoggerFactory.getLogger("o.a.c.c.C"); 
root.getLoggerContext().addTurboFilter(new TurboFilter() { 
    @Override 
    public FilterReply decide(Marker marker, Logger logger, Level level, String format, Object[] params, Throwable t) { 
     if(null != t && t instanceof OurCustomException) { 
      return FilterReply.DENY; 
     } 

     return FilterReply.ACCEPT; 
    } 
});