Could you add log level check first to improve performance?
String msg = r.getRule().getFullyQualifiedName() + "-{" + r.getRule().getExpression() + "}"; if(String.valueOf(o).equals("true")){ matchingRules.add(r.getRule()); log.info("matched: " + msg); }else{ log.info("unmatched: " + msg); }