From mboxrd@z Thu Jan 1 00:00:00 1970 From: mathieu.desnoyers@efficios.com (Mathieu Desnoyers) Date: Thu, 26 May 2016 22:14:29 +0000 (UTC) Subject: [lttng-dev] [PATCH lttng-ust] log4j example: systematically set the logger level to prevent unexpected level inheritance In-Reply-To: <1464300312-12473-1-git-send-email-jonathan.rajotte-julien@efficios.com> References: <1464300312-12473-1-git-send-email-jonathan.rajotte-julien@efficios.com> Message-ID: <600967239.20730.1464300869013.JavaMail.zimbra@efficios.com> Merged into master, 2.8, 2.7, thanks! Mathieu ----- On May 26, 2016, at 6:05 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 application with a general class path (e.g /usr/share/java/*) since > log4j will look for a property 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 > --- > doc/examples/java-log4j/Hello.java | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/doc/examples/java-log4j/Hello.java > b/doc/examples/java-log4j/Hello.java > index a477e33..496c840 100644 > --- a/doc/examples/java-log4j/Hello.java > +++ b/doc/examples/java-log4j/Hello.java > @@ -26,6 +26,7 @@ import java.io.IOException; > 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; > > /** > @@ -64,6 +65,16 @@ public class Hello { > * command line. > */ > public static void main(String args[]) throws IOException { > + > + /* 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 > + */ > + HELLO_LOG.setLevel(Level.ALL); > + > /* Start with the default Log4j configuration, which logs to console */ > BasicConfigurator.configure(); > > -- > 2.7.4 -- Mathieu Desnoyers EfficiOS Inc. http://www.efficios.com