2 * Copyright (C) 2015 - EfficiOS Inc., Alexandre Montplaisir <alexmonthy@efficios.com>
4 * This library is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU Lesser General Public License, version 2.1 only,
6 * as published by the Free Software Foundation.
8 * This library is distributed in the hope that it will be useful, but WITHOUT
9 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
13 * You should have received a copy of the GNU Lesser General Public License
14 * along with this library; if not, write to the Free Software Foundation,
15 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18 package org
.lttng
.ust
.agent
.log4j
;
20 import java
.util
.ArrayList
;
21 import java
.util
.Collection
;
22 import java
.util
.Collections
;
23 import java
.util
.List
;
25 import org
.apache
.log4j
.Appender
;
26 import org
.apache
.log4j
.LogManager
;
27 import org
.apache
.log4j
.Logger
;
28 import org
.lttng
.ust
.agent
.AbstractLttngAgent
;
31 * Agent implementation for using the Log4j logger, connecting to a root session
34 * @author Alexandre Montplaisir
36 class LttngLog4jAgent
extends AbstractLttngAgent
<LttngLogAppender
> {
38 private static LttngLog4jAgent instance
= null;
40 private LttngLog4jAgent() {
44 public static synchronized LttngLog4jAgent
getInstance() {
45 if (instance
== null) {
46 instance
= new LttngLog4jAgent();
52 public Collection
<String
> listAvailableEvents() {
53 List
<String
> ret
= new ArrayList
<String
>();
55 @SuppressWarnings("unchecked")
56 List
<Logger
> loggers
= Collections
.list(LogManager
.getCurrentLoggers());
57 for (Logger logger
: loggers
) {
63 * Check if that logger has at least one LTTng log4j appender
66 if (hasLttngAppenderAttached(logger
)) {
67 ret
.add(logger
.getName());
74 private static boolean hasLttngAppenderAttached(Logger logger
) {
75 @SuppressWarnings("unchecked")
76 List
<Appender
> appenders
= Collections
.list(logger
.getAllAppenders());
77 for (Appender appender
: appenders
) {
78 if (appender
instanceof LttngLogAppender
) {
This page took 0.031695 seconds and 4 git commands to generate.