X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=tests%2Fregression%2Fust%2Fjava-log4j%2FJTestLTTng.java;h=33566bd74256a1a1d8375f755361183909ea46ca;hb=a4c305246c4b8021fa1681076326731349a1cd17;hp=0019cb825b7d4fff1a4163d5a1fb3e102540df2d;hpb=504d4ace8d2c38787fe40b7e74cbb932cb7f3d89;p=lttng-tools.git diff --git a/tests/regression/ust/java-log4j/JTestLTTng.java b/tests/regression/ust/java-log4j/JTestLTTng.java index 0019cb825..33566bd74 100644 --- a/tests/regression/ust/java-log4j/JTestLTTng.java +++ b/tests/regression/ust/java-log4j/JTestLTTng.java @@ -1,4 +1,5 @@ /* + * Copyright (C) 2015 - Michael Jeanson * Copyright (C) 2014 - David Goulet * Christian Babeux * @@ -19,19 +20,39 @@ import java.io.IOException; import java.lang.Integer; -import org.apache.log4j.Logger; +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; -import org.lttng.ust.agent.LTTngAgent; +public class JTestLTTng { -public class JTestLTTng -{ - private static LTTngAgent lttngAgent; + /** + * Application start + * + * @param args + * Command-line arguments + * @throws IOException + * @throws InterruptedException + */ + public static void main(String args[]) throws IOException, InterruptedException { - public static void main(String args[]) throws Exception - { 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 too low, thereby failing the test. + * + * See 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; @@ -44,8 +65,16 @@ public class JTestLTTng fire_second_tp = Integer.parseInt(args[3]); } + /* Start with the default Log4j configuration, which logs to console */ BasicConfigurator.configure(); - lttngAgent = LTTngAgent.getLTTngAgent(); + + /* + * Add a LTTng log appender to both loggers, which will also send the + * logged events to UST. + */ + Appender lttngAppender = new LttngLogAppender(); + lttng.addAppender(lttngAppender); + lttng2.addAppender(lttngAppender); for (int iter = 0; iter < nrIter; iter++) { lttng.info("LOG4J tp fired!"); @@ -59,5 +88,11 @@ public class JTestLTTng if (fire_second_tp == 1) { lttng2.info("LOG4J second logger fired"); } + + /* + * Do not forget to close() all handlers so that the agent can shutdown + * and the session daemon socket gets cleaned up explicitly. + */ + lttngAppender.close(); } }