2016-07-20 14 views
0

Ich habe einen Federregler, der eine benutzerdefinierte Ausnahme zurückgibt. Ich möchte jedoch nicht, dass diese spezielle Ausnahme eine "Log.Error()" verursacht Leider protokolliert Feign es auf diese Weise automatisch.Modify Feign Protokoll Verhalten für bestimmte Ausnahmen

Gibt es eine Möglichkeit, dieses Verhalten zu ändern?

Danke.

Antwort

0

Anscheinend war es nicht Feign, das war das Problem, aber der eingebettete Tomcat, der das Protokollschreiben tat.

Wir konnten eine „Turbofilter“ der Logger hinzufügen aus, der seinen Weg, um unsere Protokolle, die spezifische Ausnahme verhindern:

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; 
    } 
});