[lttng-dev] [PATCH lttng-tools v2] fix: systematically set the logger level to prevent unexpected level inheritance
Jérémie Galarneau
jeremie.galarneau at efficios.com
Sat May 28 06:57:11 UTC 2016
Good catch! Merged in master, stable-2.8 and stable-2.7.
Thanks!
Jérémie
On Fri, May 27, 2016 at 2:14 PM, Jonathan Rajotte
<jonathan.rajotte-julien at efficios.com> wrote:
> 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.).
>
> Link: https://issues.apache.org/jira/browse/BSF-24
>
> Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien at efficios.com>
> ---
> tests/regression/ust/java-log4j/JTestLTTng.java | 13 +++++++++++++
> 1 file changed, 13 insertions(+)
>
> diff --git a/tests/regression/ust/java-log4j/JTestLTTng.java b/tests/regression/ust/java-log4j/JTestLTTng.java
> index 64a471b..80103df 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,18 @@ 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
>
--
Jérémie Galarneau
EfficiOS Inc.
http://www.efficios.com
More information about the lttng-dev
mailing list