diff --git a/core/java/src/net/i2p/util/LogLimit.java b/core/java/src/net/i2p/util/LogLimit.java index e33aed88b982f679604b903a40dd9e159527e873..ec2a5fb3d899a7f4c96019c9ee4df4b10b282ccb 100644 --- a/core/java/src/net/i2p/util/LogLimit.java +++ b/core/java/src/net/i2p/util/LogLimit.java @@ -37,7 +37,12 @@ class LogLimit { public boolean matches(Log log) { String name = log.getName(); if (name == null) return false; - return name.startsWith(_rootName); + //return name.startsWith(_rootName); + // exact match or higher in class hierarchy + // no longer allow foo.bar to match foo.barf + return name.startsWith(_rootName) && + (name.length() == _rootName.length() || + name.charAt(_rootName.length()) == '.'); } @Override diff --git a/core/java/src/net/i2p/util/LogManager.java b/core/java/src/net/i2p/util/LogManager.java index e0f5d3d5e4f6a6fe862cd89c4464f8a795ba3a39..a340c04c330139fdb0d47344bc93773efe7acc57 100644 --- a/core/java/src/net/i2p/util/LogManager.java +++ b/core/java/src/net/i2p/util/LogManager.java @@ -15,9 +15,9 @@ import java.text.DateFormat; import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; -import java.util.Iterator; import java.util.List; import java.util.Locale; +import java.util.Map; import java.util.Properties; import java.util.Queue; import java.util.Set; @@ -406,9 +406,8 @@ public class LogManager { private void parseLimits(Properties config, String recordPrefix) { _limits.clear(); if (config != null) { - for (Iterator iter = config.keySet().iterator(); iter.hasNext();) { - String key = (String) iter.next(); - String val = config.getProperty(key); + for (Map.Entry e : config.entrySet()) { + String key = (String) e.getKey(); // if we're filtering the records (e.g. logger.record.*) then // filter accordingly (stripping off that prefix for matches) @@ -420,6 +419,7 @@ public class LogManager { } } + String val = (String) e.getValue(); LogLimit lim = new LogLimit(key, Log.getLevel(val)); //_log.debug("Limit found for " + name + " as " + val); if (!_limits.contains(lim))