X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=liblttng-ust-java-agent%2Fjava%2Flttng-ust-agent-jul%2Forg%2Flttng%2Fust%2Fagent%2Fjul%2FLttngJulAgent.java;h=a2581f6bc1c24ad6d40797f654bc20f266a619fa;hb=8e15b42650e1287b333a07fd4a2a26a020a71ded;hp=597ae6b3e8228a694b2cf1ac532e181705c40555;hpb=68a1ef7391fb6103eba95fd350ccc61e73855d95;p=lttng-ust.git diff --git a/liblttng-ust-java-agent/java/lttng-ust-agent-jul/org/lttng/ust/agent/jul/LttngJulAgent.java b/liblttng-ust-java-agent/java/lttng-ust-agent-jul/org/lttng/ust/agent/jul/LttngJulAgent.java index 597ae6b3..a2581f6b 100644 --- a/liblttng-ust-java-agent/java/lttng-ust-agent-jul/org/lttng/ust/agent/jul/LttngJulAgent.java +++ b/liblttng-ust-java-agent/java/lttng-ust-agent-jul/org/lttng/ust/agent/jul/LttngJulAgent.java @@ -17,10 +17,11 @@ package org.lttng.ust.agent.jul; -import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; +import java.util.Set; +import java.util.TreeSet; import java.util.logging.Handler; import java.util.logging.LogManager; import java.util.logging.Logger; @@ -49,7 +50,7 @@ class LttngJulAgent extends AbstractLttngAgent { @Override public Collection listAvailableEvents() { - List ret = new ArrayList(); + Set ret = new TreeSet(); List loggersNames = Collections.list(LogManager.getLogManager().getLoggerNames()); for (String name : loggersNames) { @@ -57,7 +58,7 @@ class LttngJulAgent extends AbstractLttngAgent { * Skip the root logger. An empty string is not a valid event name * in LTTng. */ - if (name.equals("")) { + if (name.equals("") || name.equals("global")) { continue; } @@ -79,6 +80,21 @@ class LttngJulAgent extends AbstractLttngAgent { return true; } } + + /* + * A parent logger, if any, may be connected to an LTTng handler. In + * this case, we will want to include this child logger in the output, + * since it will be accessible by LTTng. + */ + Logger parent = logger.getParent(); + if (parent != null) { + return hasLttngHandlerAttached(parent); + } + + /* + * We have reached the root logger and have not found any LTTng handler, + * this event will not be accessible. + */ return false; }