assertEquals("FINER: {\"ts\":0,\"ph\":\"C\",\"tid\":1,\"name\":\"counter\",\"args\":{\"cats\":0}}", fLog.getMessages().get(2));
}
+ /**
+ * Test Marker
+ */
+ @Test
+ public void testMarker() {
+ Logger logger = fLogger;
+ assertNotNull(logger);
+ TraceCompassLogUtils.traceMarker(logger, Level.CONFIG, "instant", 0);
+ TraceCompassLogUtils.traceMarker(logger, Level.CONFIG, "colored", 15, "color", 0xaabccdd);
+ fStreamHandler.flush();
+ assertEquals("CONFIG: {\"ts\":0,\"ph\":\"R\",\"tid\":1,\"name\":\"instant\",\"dur\":0}", fLog.getMessages().get(0));
+ assertEquals("CONFIG: {\"ts\":0,\"ph\":\"R\",\"tid\":1,\"name\":\"colored\",\"dur\":15,\"args\":{\"color\":179031261}}", fLog.getMessages().get(1));
+ }
+
}
});
}
+ /**
+ * The Marker events are events with a duration that define a region of
+ * interest. These regions can be displayed in views as Markers or other
+ * indicators.
+ *
+ * @param logger
+ * The Logger
+ * @param level
+ * The {@link Level} of this event.
+ * @param name
+ * The name of the marker message message
+ * @param duration
+ * How long the marker should last
+ * @param args
+ * The counters to log in the format : "title", value, note
+ * "color" and an rbga will be used
+ */
+ public static void traceMarker(Logger logger, Level level, @Nullable String name, long duration, Object... args) {
+ long time = System.nanoTime();
+ long threadId = Thread.currentThread().getId();
+ logger.log(level, () -> {
+ StringBuilder sb = new StringBuilder();
+ sb.append('{');
+ appendCommon(sb, 'R', time, threadId);
+ appendName(sb, name);
+ sb.append(',');
+ writeObject(sb, "dur", duration); //$NON-NLS-1$
+ return appendArgs(sb, args).append('}').toString();
+ });
+ }
+
// -------------------------------------------------------------------------
// Helpers
// -------------------------------------------------------------------------