X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=liblttng-ust-java-agent%2Fjava%2Flttng-ust-agent-jul%2Forg%2Flttng%2Fust%2Fagent%2Fjul%2FLttngJulAgent.java;h=1e104bca47a15ee8830e53dbbd17d5f92711dbab;hb=6364bf2d71babde45ff6bacafca68218801e7d5b;hp=597ae6b3e8228a694b2cf1ac532e181705c40555;hpb=c6a5845760ee02e99e5d0609f47706036e257d7f;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..1e104bca 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 @@ -21,6 +21,8 @@ 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 +51,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 +59,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 +81,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; }