From mboxrd@z Thu Jan 1 00:00:00 1970 From: jonathan.rajotte-julien@efficios.com (Jonathan Rajotte) Date: Thu, 26 May 2016 18:14:37 -0400 Subject: [lttng-dev] [PATCH lttng-tools] fix: systematically set the logger level to prevent unexpected level inheritance Message-ID: <1464300877-13294-1-git-send-email-jonathan.rajotte-julien@efficios.com> BSF or other jars can ship with log4j.properties file embedded. This causes problem when launching an application with a general class path (e.g /usr/share/java/*) since log4j will look for a configuration file in all loaded jars. If any contains directive for the root logger it will affect any logger with no level who are directly under the root logger. This could result in an unexpected behaviour (e.g no events triggered et.). https://issues.apache.org/jira/browse/BSF-24 Signed-off-by: Jonathan Rajotte --- tests/regression/ust/java-log4j/JTestLTTng.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tests/regression/ust/java-log4j/JTestLTTng.java b/tests/regression/ust/java-log4j/JTestLTTng.java index 64a471b..ef97b34 100644 --- a/tests/regression/ust/java-log4j/JTestLTTng.java +++ b/tests/regression/ust/java-log4j/JTestLTTng.java @@ -23,6 +23,7 @@ import java.lang.Integer; import org.apache.log4j.Appender; import org.apache.log4j.BasicConfigurator; import org.apache.log4j.Logger; +import org.apache.log4j.Level; import org.lttng.ust.agent.log4j.LttngLogAppender; public class JTestLTTng { @@ -40,6 +41,17 @@ public class JTestLTTng { Logger lttng = Logger.getLogger("log4j-event"); Logger lttng2 = Logger.getLogger("log4j-event-2"); + /* Set lowest level to make sure all event levels are logged. + * Any jar can override the default log4j rootLogger level + * and a logger with no explicit level defaults to the non-null + * parent level. Events could be ignored if the inherited value + * is to low. + * e.g BSF -> https://issues.apache.org/jira/browse/BSF-24 + */ + + lttng.setLevel(Level.ALL); + lttng2.setLevel(Level.ALL); + int nrIter = Integer.parseInt(args[0]); int waitTime = Integer.parseInt(args[1]); int fire_debug_tp = 0; -- 2.7.4