X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=liblttng-ust-java-agent%2Fjava%2Flttng-ust-agent-log4j%2Forg%2Flttng%2Fust%2Fagent%2Flog4j%2FLttngLog4jAgent.java;h=7dcff9ec4e582721eba2c85675d56671884aa390;hb=68a1ef7391fb6103eba95fd350ccc61e73855d95;hp=5dd846872308eb2d46c1f1dc94175f7b9acf4eec;hpb=410d88da89c9a9e8cce20f5f9b244d23757de7d1;p=lttng-ust.git diff --git a/liblttng-ust-java-agent/java/lttng-ust-agent-log4j/org/lttng/ust/agent/log4j/LttngLog4jAgent.java b/liblttng-ust-java-agent/java/lttng-ust-agent-log4j/org/lttng/ust/agent/log4j/LttngLog4jAgent.java index 5dd84687..7dcff9ec 100644 --- a/liblttng-ust-java-agent/java/lttng-ust-agent-log4j/org/lttng/ust/agent/log4j/LttngLog4jAgent.java +++ b/liblttng-ust-java-agent/java/lttng-ust-agent-log4j/org/lttng/ust/agent/log4j/LttngLog4jAgent.java @@ -17,6 +17,14 @@ package org.lttng.ust.agent.log4j; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.List; + +import org.apache.log4j.Appender; +import org.apache.log4j.LogManager; +import org.apache.log4j.Logger; import org.lttng.ust.agent.AbstractLttngAgent; /** @@ -40,4 +48,33 @@ class LttngLog4jAgent extends AbstractLttngAgent { return instance; } + @Override + public Collection listAvailableEvents() { + List ret = new ArrayList(); + + @SuppressWarnings("unchecked") + List loggers = Collections.list(LogManager.getCurrentLoggers()); + for (Logger logger : loggers) { + /* + * Check if that logger has at least one LTTng log4j appender + * attached. + */ + if (hasLttngAppenderAttached(logger)) { + ret.add(logger.getName()); + } + } + + return ret; + } + + private static boolean hasLttngAppenderAttached(Logger logger) { + @SuppressWarnings("unchecked") + List appenders = Collections.list(logger.getAllAppenders()); + for (Appender appender : appenders) { + if (appender instanceof LttngLogAppender) { + return true; + } + } + return false; + } }