X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=liblttng-ust-java-agent%2Fjava%2Flttng-ust-agent-jul%2Forg%2Flttng%2Fust%2Fagent%2Fjul%2FLttngJulAgent.java;fp=liblttng-ust-java-agent%2Fjava%2Flttng-ust-agent-jul%2Forg%2Flttng%2Fust%2Fagent%2Fjul%2FLttngJulAgent.java;h=597ae6b3e8228a694b2cf1ac532e181705c40555;hb=68a1ef7391fb6103eba95fd350ccc61e73855d95;hp=fa92f64541b04788af12015bc3fa8d30343466d9;hpb=410d88da89c9a9e8cce20f5f9b244d23757de7d1;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 fa92f645..597ae6b3 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,6 +17,14 @@ 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.logging.Handler; +import java.util.logging.LogManager; +import java.util.logging.Logger; + import org.lttng.ust.agent.AbstractLttngAgent; /** @@ -39,4 +47,39 @@ class LttngJulAgent extends AbstractLttngAgent { return instance; } + @Override + public Collection listAvailableEvents() { + List ret = new ArrayList(); + + List loggersNames = Collections.list(LogManager.getLogManager().getLoggerNames()); + for (String name : loggersNames) { + /* + * Skip the root logger. An empty string is not a valid event name + * in LTTng. + */ + if (name.equals("")) { + continue; + } + + /* + * Check if that logger has at least one LTTng JUL handler attached. + */ + Logger logger = Logger.getLogger(name); + if (hasLttngHandlerAttached(logger)) { + ret.add(name); + } + } + + return ret; + } + + private static boolean hasLttngHandlerAttached(Logger logger) { + for (Handler handler : logger.getHandlers()) { + if (handler instanceof LttngLogHandler) { + return true; + } + } + return false; + } + }