X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=liblttng-ust-jul%2Forg%2Flttng%2Fust%2Fjul%2FLTTngSessiondCmd2_4.java;h=9b544be55086f11441090cdeadae1ccb80251572;hb=3c3a0129d36e41b4c007ab008f603813efbb66ac;hp=4cb5a7319e99fdad88bdfd684b1c350befdcc33b;hpb=2b90f1d34356963d8cac98fb409689a5c3ebd2ac;p=lttng-ust.git diff --git a/liblttng-ust-jul/org/lttng/ust/jul/LTTngSessiondCmd2_4.java b/liblttng-ust-jul/org/lttng/ust/jul/LTTngSessiondCmd2_4.java index 4cb5a731..9b544be5 100644 --- a/liblttng-ust-jul/org/lttng/ust/jul/LTTngSessiondCmd2_4.java +++ b/liblttng-ust-jul/org/lttng/ust/jul/LTTngSessiondCmd2_4.java @@ -152,6 +152,7 @@ public interface LTTngSessiondCmd2_4 { */ public int enableLogger(LTTngLogHandler handler, LTTngEvent event, HashMap enabledLoggers) { + int ret; Logger logger; logger = handler.logManager.getLogger(event.name); @@ -159,9 +160,12 @@ public interface LTTngSessiondCmd2_4 { 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; } @@ -176,7 +180,7 @@ public interface LTTngSessiondCmd2_4 { 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; @@ -192,9 +196,11 @@ public interface LTTngSessiondCmd2_4 { * 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(); @@ -203,22 +209,26 @@ public interface LTTngSessiondCmd2_4 { 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; }