List session event loglevel for the JUL domain
[lttng-tools.git] / src / bin / lttng / commands / list.c
index bca06e75d49cecd7bee2b07a03aa415f7e468aba..8c1d5af87fd25bfb638aa946fdd13a771afe4a6c 100644 (file)
@@ -168,6 +168,43 @@ const char *filter_string(int value)
        }
 }
 
+static
+const char *exclusion_string(int value)
+{
+       switch (value) {
+       case 1: return " [has exclusions]";
+       default: return "";
+       }
+}
+
+static const char *loglevel_jul_string(int value)
+{
+       switch (value) {
+       case -1:
+               return "";
+       case LTTNG_LOGLEVEL_JUL_OFF:
+               return "JUL_OFF";
+       case LTTNG_LOGLEVEL_JUL_SEVERE:
+               return "JUL_SEVERE";
+       case LTTNG_LOGLEVEL_JUL_WARNING:
+               return "JUL_WARNING";
+       case LTTNG_LOGLEVEL_JUL_INFO:
+               return "JUL_INFO";
+       case LTTNG_LOGLEVEL_JUL_CONFIG:
+               return "JUL_CONFIG";
+       case LTTNG_LOGLEVEL_JUL_FINE:
+               return "JUL_FINE";
+       case LTTNG_LOGLEVEL_JUL_FINER:
+               return "JUL_FINER";
+       case LTTNG_LOGLEVEL_JUL_FINEST:
+               return "JUL_FINEST";
+       case LTTNG_LOGLEVEL_JUL_ALL:
+               return "JUL_ALL";
+       default:
+               return "<<UNKNOWN>>";
+       }
+}
+
 static const char *loglevel_string(int value)
 {
        switch (value) {
@@ -208,6 +245,20 @@ static const char *loglevel_string(int value)
        }
 }
 
+static const char *logleveltype_string(enum lttng_loglevel_type value)
+{
+       switch (value) {
+       case LTTNG_EVENT_LOGLEVEL_ALL:
+               return ":";
+       case LTTNG_EVENT_LOGLEVEL_RANGE:
+               return " <=";
+       case LTTNG_EVENT_LOGLEVEL_SINGLE:
+               return " ==";
+       default:
+               return " <<TYPE UNKN>>";
+       }
+}
+
 /*
  * Pretty print single event.
  */
@@ -217,18 +268,21 @@ static void print_events(struct lttng_event *event)
        case LTTNG_EVENT_TRACEPOINT:
        {
                if (event->loglevel != -1) {
-                       MSG("%s%s (loglevel: %s (%d)) (type: tracepoint)%s%s",
+                       MSG("%s%s (loglevel%s %s (%d)) (type: tracepoint)%s%s%s",
                                indent6,
                                event->name,
+                               logleveltype_string(event->loglevel_type),
                                loglevel_string(event->loglevel),
                                event->loglevel,
                                enabled_string(event->enabled),
+                               exclusion_string(event->exclusion),
                                filter_string(event->filter));
                } else {
-                       MSG("%s%s (type: tracepoint)%s%s",
+                       MSG("%s%s (type: tracepoint)%s%s%s",
                                indent6,
                                event->name,
                                enabled_string(event->enabled),
+                               exclusion_string(event->exclusion),
                                filter_string(event->filter));
                }
                break;
@@ -464,6 +518,8 @@ static int list_ust_event_fields(void)
                        cmdline = get_cmdline_by_pid(cur_pid);
                        MSG("\nPID: %d - Name: %s", cur_pid, cmdline);
                        free(cmdline);
+                       /* Wipe current event since we are about to print a new PID. */
+                       memset(&cur_event, 0, sizeof(cur_event));
                }
                if (strcmp(cur_event.name, event_field_list[i].event.name) != 0) {
                        print_events(&event_field_list[i].event);
@@ -555,8 +611,10 @@ static int list_session_jul_events(void)
        }
 
        for (i = 0; i < count; i++) {
-               MSG("%s- %s%s", indent4, events[i].name,
-                               enabled_string(events[i].enabled));
+               MSG("%s- %s%s (loglevel%s %s)", indent4, events[i].name,
+                               enabled_string(events[i].enabled),
+                               logleveltype_string(events[i].loglevel_type),
+                               loglevel_jul_string(events[i].loglevel));
        }
 
        MSG("");
@@ -617,6 +675,8 @@ static void print_channel(struct lttng_channel *channel)
        MSG("%snumber of subbufers: %" PRIu64, indent6, channel->attr.num_subbuf);
        MSG("%sswitch timer interval: %u", indent6, channel->attr.switch_timer_interval);
        MSG("%sread timer interval: %u", indent6, channel->attr.read_timer_interval);
+       MSG("%strace file count: %" PRIu64, indent6, channel->attr.tracefile_count);
+       MSG("%strace file size (bytes): %" PRIu64, indent6, channel->attr.tracefile_size);
        switch (channel->attr.output) {
                case LTTNG_EVENT_SPLICE:
                        MSG("%soutput: splice()", indent6);
@@ -728,7 +788,9 @@ static int list_sessions(const char *session_name)
                                MSG("Tracing session %s: [%s%s]", session_name,
                                                active_string(sessions[i].enabled),
                                                snapshot_string(sessions[i].snapshot_mode));
-                               MSG("%sTrace path: %s\n", indent4, sessions[i].path);
+                               MSG("%sTrace path: %s", indent4, sessions[i].path);
+                               MSG("%sLive timer interval (usec): %u\n", indent4,
+                                               sessions[i].live_timer_interval);
                                break;
                        }
                } else {
@@ -907,7 +969,7 @@ int cmd_list(int argc, const char **argv)
                        goto end;
                }
 
-               if (opt_kernel) {
+               if (opt_kernel || opt_userspace) {
                        /* Channel listing */
                        ret = list_channels(opt_channel);
                        if (ret < 0) {
This page took 0.0253 seconds and 4 git commands to generate.