From 70cfe01dca817811451fe3748ace217aa81bbf9f Mon Sep 17 00:00:00 2001 From: Jonathan Rajotte Date: Sat, 28 May 2016 02:34:23 -0400 Subject: [PATCH] Fix: set the logger level to prevent unexpected level inheritance MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit BSF and other jars can ship with an embedded log4j.properties file. 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 a directive for the root logger, it will affect any logger with no level that are directly under the root logger. This can result in an unexpected behaviour (e.g no events triggered etc.). Link: https://issues.apache.org/jira/browse/BSF-24 Signed-off-by: Jonathan Rajotte Signed-off-by: Jérémie Galarneau --- tests/regression/ust/java-log4j/JTestLTTng.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/tests/regression/ust/java-log4j/JTestLTTng.java b/tests/regression/ust/java-log4j/JTestLTTng.java index 0019cb825..48cb13459 100644 --- a/tests/regression/ust/java-log4j/JTestLTTng.java +++ b/tests/regression/ust/java-log4j/JTestLTTng.java @@ -21,7 +21,7 @@ import java.lang.Integer; import org.apache.log4j.Logger; import org.apache.log4j.BasicConfigurator; - +import org.apache.log4j.Level; import org.lttng.ust.agent.LTTngAgent; public class JTestLTTng @@ -37,6 +37,18 @@ public class JTestLTTng int fire_debug_tp = 0; int fire_second_tp = 0; + /* + * 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 too low, thereby failing the test. + * + * See BSF -> https://issues.apache.org/jira/browse/BSF-24 + */ + lttng.setLevel(Level.ALL); + lttng2.setLevel(Level.ALL); + if (args.length > 2) { fire_debug_tp = Integer.parseInt(args[2]); } -- 2.34.1