ctf-text: show timestamp in sec.nsec
[babeltrace.git] / formats / ctf-text / ctf-text.c
index 9b5f98be1a23bd6d90104f836e9ea20977dbb291..19e92fcabdf836fe909c703450f0133b8847b6a2 100644 (file)
@@ -34,6 +34,8 @@
 #include <unistd.h>
 #include <stdlib.h>
 
+#define NSEC_PER_SEC 1000000000ULL
+
 int opt_all_field_names,
        opt_scope_field_names,
        opt_header_field_names,
@@ -42,7 +44,8 @@ int opt_all_field_names,
        opt_trace_name,
        opt_trace_domain,
        opt_trace_procname,
-       opt_trace_vpid;
+       opt_trace_vpid,
+       opt_loglevel;
 
 enum field_item {
        ITEM_SCOPE,
@@ -178,12 +181,17 @@ int ctf_text_write_event(struct stream_pos *ppos,
        }
 
        if (stream->has_timestamp) {
+               uint64_t ts_sec, ts_nsec;
+
+               ts_sec = stream->timestamp / NSEC_PER_SEC;
+               ts_nsec = stream->timestamp % NSEC_PER_SEC;
                set_field_names_print(pos, ITEM_HEADER);
                if (pos->print_names)
                        fprintf(pos->fp, "timestamp = ");
                else
                        fprintf(pos->fp, "[");
-               fprintf(pos->fp, "%12" PRIu64, stream->timestamp);
+               fprintf(pos->fp, "%3" PRIu64 ".%09" PRIu64,
+                       ts_sec, ts_nsec);
                if (!pos->print_names)
                        fprintf(pos->fp, "]");
 
@@ -244,6 +252,21 @@ int ctf_text_write_event(struct stream_pos *ppos,
                        fprintf(pos->fp, ", ");
                dom_print = 1;
        }
+       if ((opt_loglevel || opt_all_field_names) && event_class->loglevel_identifier != 0) {
+               set_field_names_print(pos, ITEM_HEADER);
+               if (pos->print_names) {
+                       fprintf(pos->fp, "loglevel = ");
+               } else if (dom_print) {
+                       fprintf(pos->fp, ":");
+               }
+
+               fprintf(pos->fp, "%s (%lld)",
+                       g_quark_to_string(event_class->loglevel_identifier),
+                       (long long) event_class->loglevel_value);
+               if (pos->print_names)
+                       fprintf(pos->fp, ", ");
+               dom_print = 1;
+       }
        if (dom_print && !pos->print_names)
                fprintf(pos->fp, " ");
        set_field_names_print(pos, ITEM_HEADER);
This page took 0.024145 seconds and 4 git commands to generate.