Fix: set the logger level to prevent unexpected level inheritance
authorJonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Sat, 28 May 2016 06:34:23 +0000 (02:34 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Sat, 28 May 2016 06:43:09 +0000 (02:43 -0400)
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 <jonathan.rajotte-julien@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
tests/regression/ust/java-log4j/JTestLTTng.java

index 0019cb825b7d4fff1a4163d5a1fb3e102540df2d..48cb13459008267d42850a4ed6391f314ebc8e60 100644 (file)
@@ -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]);
                }
This page took 0.026115 seconds and 4 git commands to generate.