*/
public int enableLogger(LTTngLogHandler handler, LTTngEvent event,
HashMap enabledLoggers) {
+ int ret;
Logger logger;
logger = handler.logManager.getLogger(event.name);
return 0;
}
- handler.setEvent(event);
- logger.addHandler(handler);
- enabledLoggers.put(event.name, logger);
+ ret = handler.setEvent(event);
+ if (ret == 0) {
+ /* Newly created event, add the handler. */
+ logger.addHandler(handler);
+ enabledLoggers.put(event.name, logger);
+ }
return 1;
}
public LTTngEvent execute(LTTngLogHandler handler, HashMap enabledLoggers) {
int ret;
Logger logger;
- LTTngEvent event;
+ LTTngEvent event = null;
if (name == null) {
this.code = lttng_jul_ret_code.CODE_INVALID_CMD;
* Keep the loglevel value for all events in case an event
* appears later on.
*/
- handler.logLevelUseAll = 1;
- handler.logLevelAll = lttngLogLevel;
- handler.logLevelTypeAll = lttngLogLevelType;
+ if (lttngLogLevel != -1) {
+ handler.logLevelUseAll = 1;
+ handler.logLevelsAll.add(new LTTngLogLevel(lttngLogLevel,
+ lttngLogLevelType));
+ }
while (loggers.hasMoreElements()) {
loggerName = loggers.nextElement().toString();
continue;
}
- if (enabledLoggers.get(loggerName) != null) {
- continue;
- }
-
/*
* Create new event object and set it in the log handler so
* we can process the record entry with the right
* attributes like the loglevels.
*/
- event = new LTTngEvent(loggerName, lttngLogLevel,
- lttngLogLevelType);
+ event = new LTTngEvent(loggerName, 0, 0);
+ /* Clean up loglevel and merge the the ones from all events. */
+ event.logLevels.clear();
+ event.logLevels.addAll(handler.logLevelsAll);
enableLogger(handler, event, enabledLoggers);
}
this.code = lttng_jul_ret_code.CODE_SUCCESS_CMD;
- event = new LTTngEvent("*", lttngLogLevel, lttngLogLevelType);
+ /*
+ * Only return an event if this is a newly created event
+ * meaning the loglevel is valid.
+ */
+ if (lttngLogLevel != -1) {
+ event = new LTTngEvent("*", lttngLogLevel, lttngLogLevelType);
+ }
return event;
}