2 * Copyright (C) 2015, EfficiOS Inc., Alexandre Montplaisir <alexmonthy@efficios.com>
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License along
15 * with this program; if not, write to the Free Software Foundation, Inc.,
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19 package org
.lttng
.tools
;
21 import java
.util
.List
;
24 * Java representation of a LTTng tracing session.
26 * @author Alexandre Montplaisir
28 public interface ILttngSession
extends AutoCloseable
{
31 * Tracing domains as they are defined by lttng-tools
34 /** The JUL (java.util.logging) domain */
35 JUL("-j"), /** The log4j (org.apache.log4j) domain */
38 private final String flag
;
40 private Domain(String flag
) {
45 * @return The corresponding command-line flag to pass to options like
46 * "lttng enable-event"
48 public String
flag() {
53 // ------------------------------------------------------------------------
55 // ------------------------------------------------------------------------
58 * Create a new LTTng tracing session using the default backend.
61 * The name of the session to use. It can be null, in which case
62 * we will provide a unique random name.
64 * The tracing domain of this session
65 * @return The new session object
67 static ILttngSession
createSession(String sessionName
, Domain domain
) {
68 return createCommandLineSession(sessionName
, domain
);
72 * Create a new LTTng tracing session, which will use the command-line
76 * The name of the session to use. It can be null, in which case
77 * we will provide a unique random name.
79 * The tracing domain of this session
80 * @return The new session object
82 static ILttngSession
createCommandLineSession(String sessionName
, Domain domain
) {
83 return new LttngCommandLineSession(sessionName
, domain
);
86 // ------------------------------------------------------------------------
88 // ------------------------------------------------------------------------
91 * Should be used to destroy the LTTng session.
96 // ------------------------------------------------------------------------
98 // ------------------------------------------------------------------------
101 * Enable an individual event, specifying a loglevel and filter string.
104 * The name of the event to enable
106 * The loglevel, will be passed as-is to lttng. May be null to
108 * @param loglevelOnly
109 * True to use this log level only (--loglevel-only), or false to
110 * include all more severe levels (--loglevel). Ignored if
111 * "loglevel" is null.
113 * The filter string, may be null to not specify one.
114 * @return If the command executed successfully (return code = 0)
116 boolean enableEvent(String eventName
, String loglevel
, boolean loglevelOnly
, String filter
);
119 * Enable individual event(s) with no loglevel/filter specified.
121 * @param enabledEvents
122 * The list of events to enable. Should not be null or empty
123 * @return If the command executed successfully (return code = 0).
125 boolean enableEvents(String
... enabledEvents
);
128 * Enable all events in the session (as with "enable-event -a").
130 * @return If the command executed successfully (return code = 0).
132 boolean enableAllEvents();
135 * Send a disable-event command. Used to disable event(s) that were previously
138 * @param disabledEvents
139 * The list of disabled events. Should not be null or empty
140 * @return If the command executed successfully (return code = 0).
142 boolean disableEvents(String
... disabledEvents
);
145 * Disable all events currently enabled in the session
146 * ("lttng disable-event -a").
148 * @return If the command executed successfully (return code = 0)
150 boolean disableAllEvents();
155 * @return If the command executed successfully (return code = 0).
160 * Stop the tracing session
162 * @return If the command executed successfully (return code = 0).
167 * Issue a "lttng view" command on the session, and returns its output. This
168 * effectively returns the current content of the trace in text form.
170 * @return The output of Babeltrace on the session's current trace
This page took 0.066534 seconds and 5 git commands to generate.