From c2fa2d0c5ba1d3390e3f7049400ca90ceb4dde58 Mon Sep 17 00:00:00 2001 From: zzz <zzz@mail.i2p> Date: Sat, 5 Oct 2013 13:07:33 +0000 Subject: [PATCH] * Logging: - Require strict match of class name component - parseLimits() cleanup --- core/java/src/net/i2p/util/LogLimit.java | 7 ++++++- core/java/src/net/i2p/util/LogManager.java | 8 ++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/core/java/src/net/i2p/util/LogLimit.java b/core/java/src/net/i2p/util/LogLimit.java index e33aed88b9..ec2a5fb3d8 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 e0f5d3d5e4..a340c04c33 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)) -- GitLab