X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=blobdiff_plain;f=tests%2Fregression%2Fust%2Fjava-log4j%2FJTestLTTng.java;h=1b4a51b45c02132027a812e7b2cb283118cdadf5;hp=0019cb825b7d4fff1a4163d5a1fb3e102540df2d;hb=9d16b343fb9e781fc8d8fa3c448a3f382306dd33;hpb=504d4ace8d2c38787fe40b7e74cbb932cb7f3d89 diff --git a/tests/regression/ust/java-log4j/JTestLTTng.java b/tests/regression/ust/java-log4j/JTestLTTng.java index 0019cb825..1b4a51b45 100644 --- a/tests/regression/ust/java-log4j/JTestLTTng.java +++ b/tests/regression/ust/java-log4j/JTestLTTng.java @@ -1,37 +1,48 @@ /* - * Copyright (C) 2014 - David Goulet - * Christian Babeux + * Copyright (C) 2015 Michael Jeanson + * Copyright (C) 2014 David Goulet + * Copyright (C) 2014 Christian Babeux * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License, version 2 only, as - * published by the Free Software Foundation. + * SPDX-License-Identifier: GPL-2.0-only * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 51 - * Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ 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 +55,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 +78,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(); } }