From 1820ea46d07f578495ff6258102038355c1529dd Mon Sep 17 00:00:00 2001 From: Alexandre Montplaisir Date: Mon, 7 Mar 2016 16:43:01 -0500 Subject: [PATCH] Clarify and simplify the Java agent "Hello" examples An "Hello World" type example should only mention the bare minimum required, to avoid confusing new users further! Signed-off-by: Alexandre Montplaisir Signed-off-by: Mathieu Desnoyers --- doc/examples/java-jul/Hello.java | 75 ++++++++++-------------------- doc/examples/java-log4j/Hello.java | 42 +++++++++++------ 2 files changed, 51 insertions(+), 66 deletions(-) diff --git a/doc/examples/java-jul/Hello.java b/doc/examples/java-jul/Hello.java index 7016cf49..cb9f24b1 100644 --- a/doc/examples/java-jul/Hello.java +++ b/doc/examples/java-jul/Hello.java @@ -43,6 +43,21 @@ import org.lttng.ust.agent.jul.LttngLogHandler; * the Logger, those will continue logging events normally. *

* + *

+ * To obtain LTTng trace events, you should run the following sequence of + * commands: + *

+ * + *
    + *
  • $ lttng create
  • + *
  • $ lttng enable-event -j -a
  • + *
  • $ lttng start
  • + *
  • (run this program)
  • + *
  • $ lttng stop
  • + *
  • $ lttng view
  • + *
  • $ lttng destroy
  • + *
+ * * @author Alexandre Montplaisir * @author David Goulet */ @@ -57,65 +72,23 @@ public class Hello { * @param args * Command-line arguments * @throws IOException - * @throws InterruptedException + * If the required native libraries cannot be found. You may + * have to specify "-Djava.library.path=..." on the "java" + * command line. */ - public static void main(String args[]) throws IOException, InterruptedException { + public static void main(String args[]) throws IOException { /* Instantiate a LTTngLogHandler object, and attach it to our logger */ Handler lttngHandler = new LttngLogHandler(); LOGGER.addHandler(lttngHandler); - /* - * Gives you time to do some lttng commands before any event is hit. - */ - Thread.sleep(5000); - - /* Trigger a tracing event using the JUL Logger created before. */ + /* Log events using the JUL Logger created before. */ LOGGER.info("Hello World, the answer is " + 42); + LOGGER.info("Another info event"); + LOGGER.severe("A severe event"); - /* - * From this point on, the above message will be collected in the trace - * if the event "Hello" is enabled for the JUL domain using the lttng - * command line or the lttng-ctl API. For instance: - * - * $ lttng enable-event -j Hello - */ - - /* - * A new logger is created here and fired after. Typically with JUL, you - * use one static Logger per class. This example here can represent a - * class being lazy-loaded later in the execution of the application. - * - * The agent has an internal timer that is fired every 5 seconds in - * order to enable events that were not found at first but might need to - * be enabled when a new Logger appears. Unfortunately, there is no way - * right now to get notified of that so we have to actively poll. - * - * Using the --all command for instance, it will make this Logger - * available in a LTTng trace after the internal agent's timer is fired. - * (lttng enable-event -j -a). - */ - Logger helloLogDelayed = Logger.getLogger("hello_delay"); - - /* - * Attach a handler to this new logger. - * - * Using the same handler as before would also work. - */ - Handler lttngHandler2 = new LttngLogHandler(); - helloLogDelayed.addHandler(lttngHandler2); - - System.out.println("Firing hello delay in 10 seconds..."); - Thread.sleep(10000); - helloLogDelayed.info("Hello World delayed..."); - - System.out.println("Cleaning Hello"); - - /* - * Do not forget to close() all handlers so that the agent can shutdown - * and the session daemon socket gets cleaned up explicitly. - */ + /* Cleanup */ + LOGGER.removeHandler(lttngHandler); lttngHandler.close(); - lttngHandler2.close(); } } diff --git a/doc/examples/java-log4j/Hello.java b/doc/examples/java-log4j/Hello.java index c51d4d40..a477e334 100644 --- a/doc/examples/java-log4j/Hello.java +++ b/doc/examples/java-log4j/Hello.java @@ -29,7 +29,22 @@ import org.apache.log4j.Logger; import org.lttng.ust.agent.log4j.LttngLogAppender; /** - * Example application using the LTTng-UST Java JUL agent. + * Example application using the LTTng-UST Java log4j agent. + * + *

+ * To obtain LTTng trace events, you should run the following sequence of + * commands: + *

+ * + *
    + *
  • $ lttng create
  • + *
  • $ lttng enable-event -l -a
  • + *
  • $ lttng start
  • + *
  • (run this program)
  • + *
  • $ lttng stop
  • + *
  • $ lttng view
  • + *
  • $ lttng destroy
  • + *
* * @author Alexandre Montplaisir * @author Christian Babeux @@ -44,15 +59,17 @@ public class Hello { * @param args * Command-line arguments * @throws IOException - * @throws InterruptedException + * If the required native libraries cannot be found. You may + * have to specify "-Djava.library.path=..." on the "java" + * command line. */ - public static void main(String args[]) throws IOException, InterruptedException { + public static void main(String args[]) throws IOException { /* Start with the default Log4j configuration, which logs to console */ BasicConfigurator.configure(); /* - * Add a LTTng log appender to the logger, which will also send the - * logged events to UST. + * Instantiate a LTTng log appender and attach it to the logger, which + * will now send the logged events to UST. */ Appender lttngAppender = new LttngLogAppender(); HELLO_LOG.addAppender(lttngAppender); @@ -63,18 +80,13 @@ public class Hello { */ // PropertyConfigurator.configure(fileName); - /* - * Gives you time to do some lttng commands before any event is hit. - */ - Thread.sleep(5000); - - /* Trigger a tracing event using the Log4j Logger created before. */ + /* Trigger some tracing events using the Log4j Logger created before. */ HELLO_LOG.info("Hello World, the answer is " + 42); + HELLO_LOG.info("Another info event"); + HELLO_LOG.error("An error event"); - System.out.println("Firing second event in 5 seconds..."); - Thread.sleep(5000); - HELLO_LOG.info("Hello World delayed..."); - + /* Cleanup */ + HELLO_LOG.removeAppender(lttngAppender); lttngAppender.close(); } } -- 2.34.1