0

I have a spring controller that returns a custom-made exception. However, I don't want that specific exception to cause a "Log.Error()" Unfortunately, Feign logs it that way automatically.

Is there any way to change this behavior?

Thanks.

DougieHauser
  • 460
  • 6
  • 14

1 Answers1

0

Apparently, it wasn't Feign that was the problem, but the embedded Tomcat that did the log writing.

We were able to add a "TurboFilter" to the Logger to prevent that specific exception from making its' way to our logs:

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;
    }
});
DougieHauser
  • 460
  • 6
  • 14