X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=liblttng-ust-jul%2Forg%2Flttng%2Fust%2Fjul%2FLTTngSessiondCmd2_4.java;h=7f5f61d1029ecebb6311ed1234ae0e21bb97b0e3;hb=5b5ffa03ce2a490ddf34d3715c21c7b633567b9a;hp=6f3cef348a2f9f428af5c493c4d087e3c1db2897;hpb=b24e4e91830659fca70cfd4381280b828bf8d360;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 6f3cef34..7f5f61d1 100644 --- a/liblttng-ust-jul/org/lttng/ust/jul/LTTngSessiondCmd2_4.java +++ b/liblttng-ust-jul/org/lttng/ust/jul/LTTngSessiondCmd2_4.java @@ -140,6 +140,29 @@ public interface LTTngSessiondCmd2_4 { return data; } + /* + * Enable a logger meaning add our handler to it using an exiting + * event. If successful, the logger is added to the given enabled + * Loggers hashmap. + * + * @return 0 if NO logger is found else 1 if added. + */ + public int enableLogger(LTTngLogHandler handler, LTTngEvent event, + HashMap enabledLoggers) { + Logger logger; + + logger = handler.logManager.getLogger(event.name); + if (logger == null) { + return 0; + } + + handler.setEvent(event); + logger.addHandler(handler); + enabledLoggers.put(event.name, logger); + + return 1; + } + /** * Execute enable handler action which is to enable the given handler * to the received name. @@ -147,8 +170,10 @@ public interface LTTngSessiondCmd2_4 { * @return Event name as a string if the event is NOT found thus was * not enabled. */ - public String execute(LTTngLogHandler handler, HashMap enabledLoggers) { + public LTTngEvent execute(LTTngLogHandler handler, HashMap enabledLoggers) { + int ret; Logger logger; + LTTngEvent event; if (name == null) { this.code = lttng_jul_ret_code.CODE_INVALID_CMD; @@ -159,6 +184,15 @@ public interface LTTngSessiondCmd2_4 { if (name.trim().equals("*")) { String loggerName; Enumeration loggers = handler.logManager.getLoggerNames(); + + /* + * Keep the loglevel value for all events in case an event + * appears later on. + */ + handler.logLevelUseAll = 1; + handler.logLevelAll = lttngLogLevel; + handler.logLevelTypeAll = lttngLogLevelType; + while (loggers.hasMoreElements()) { loggerName = loggers.nextElement().toString(); /* Somehow there is always an empty string at the end. */ @@ -170,32 +204,35 @@ public interface LTTngSessiondCmd2_4 { continue; } - logger = handler.logManager.getLogger(loggerName); - handler.setLogLevel(loggerName, lttngLogLevel, + /* + * 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); - logger.addHandler(handler); - enabledLoggers.put(loggerName, logger); + enableLogger(handler, event, enabledLoggers); } this.code = lttng_jul_ret_code.CODE_SUCCESS_CMD; - /* - * Return the name as a new string so we can add the * event - * name to the event list that we need to enable for new - * Logger. - */ - return new String(name); + + event = new LTTngEvent("*", lttngLogLevel, lttngLogLevelType); + return event; } this.code = lttng_jul_ret_code.CODE_SUCCESS_CMD; - logger = handler.logManager.getLogger(name.trim()); - if (logger != null) { - handler.setLogLevel(name.trim(), lttngLogLevel, - lttngLogLevelType); - logger.addHandler(handler); - enabledLoggers.put(name.trim(), logger); + + /* + * 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(name.trim(), lttngLogLevel, + lttngLogLevelType); + ret = enableLogger(handler, event, enabledLoggers); + if (ret == 1) { return null; - } else { - return new String(name); } + return event; } }