カスタムメイドの例外を返すスプリング コントローラーがあります。ただし、その特定の例外によって「Log.Error()」が発生することは望ましくありません。残念ながら、Feign はそのように自動的にログに記録します。
この動作を変更する方法はありますか?
ありがとう。
問題だったのは Feign ではなく、組み込みの Tomcat がログの書き込みを行っていたようです。
Logger に「TurboFilter」を追加して、特定の例外がログに記録されるのを防ぐことができました。
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;
}
});