diff --git a/easy-rules-core/src/main/java/org/jeasy/rules/api/Facts.java b/easy-rules-core/src/main/java/org/jeasy/rules/api/Facts.java index 7759359..34fe182 100644 --- a/easy-rules-core/src/main/java/org/jeasy/rules/api/Facts.java +++ b/easy-rules-core/src/main/java/org/jeasy/rules/api/Facts.java @@ -95,12 +95,16 @@ public class Facts implements Iterable> { @Override public String toString() { - StringBuilder stringBuilder = new StringBuilder("Facts {").append("\n"); - for (Map.Entry fact : facts.entrySet()) { - stringBuilder.append(format(" Fact { %s : %s }", fact.getKey(), String.valueOf(fact.getValue()))); - stringBuilder.append("\n"); + StringBuilder stringBuilder = new StringBuilder("["); + List> entries = new ArrayList<>(facts.entrySet()); + for (int i = 0; i < entries.size(); i++) { + Map.Entry entry = entries.get(i); + stringBuilder.append(format(" { %s : %s } ", entry.getKey(), String.valueOf(entry.getValue()))); + if (i < entries.size() - 1) { + stringBuilder.append(","); + } } - stringBuilder.append("}"); + stringBuilder.append("]"); return stringBuilder.toString(); } } diff --git a/easy-rules-core/src/main/java/org/jeasy/rules/core/InferenceRulesEngine.java b/easy-rules-core/src/main/java/org/jeasy/rules/core/InferenceRulesEngine.java index 00a23f3..dd22c59 100644 --- a/easy-rules-core/src/main/java/org/jeasy/rules/core/InferenceRulesEngine.java +++ b/easy-rules-core/src/main/java/org/jeasy/rules/core/InferenceRulesEngine.java @@ -105,12 +105,12 @@ public final class InferenceRulesEngine implements RulesEngine { public void fire(Rules rules, Facts facts) { Set selectedRules; do { - LOGGER.info("Selecting candidate rules based on the following {}", facts); + LOGGER.info("Selecting candidate rules based on the following facts: {}", facts); selectedRules = selectCandidates(rules, facts); if(!selectedRules.isEmpty()) { delegate.doFire(new Rules(selectedRules), facts); } else { - LOGGER.info("No candidate rules found for {}", facts); + LOGGER.info("No candidate rules found for facts: {}", facts); } } while (!selectedRules.isEmpty()); }