X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;ds=sidebyside;f=liblttng-ust-java-agent%2Fjava%2Flttng-ust-agent-jul%2Forg%2Flttng%2Fust%2Fagent%2Fjul%2FLttngJulAgent.java;h=99c5fde0cc4b5fb2cc2bb8ca55d4c7a14c81aedb;hb=c0c0989ab70574e09b2f7e8b48c2da6af664a849;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..99c5fde0 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 @@ -1,26 +1,17 @@ /* - * Copyright (C) 2015 - EfficiOS Inc., Alexandre Montplaisir + * SPDX-License-Identifier: LGPL-2.1-only * - * This library is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License, version 2.1 only, - * as published by the Free Software Foundation. - * - * This library is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License - * for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this library; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * Copyright (C) 2015 EfficiOS Inc. + * Copyright (C) 2015 Alexandre Montplaisir */ 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 +40,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 +48,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 +70,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; }