public MonitorEvent(final String category, final String message, final DebuggableWithTitle[] debugDetails) { this.message = message; this.category = category; debug = new DebugString(); try { if (debugDetails != null) { for (final DebuggableWithTitle info : debugDetails) { debug.appendTitle(info.debugTitle()); debug.indent(); info.debugData(debug); debug.unindent(); } } } catch (final RuntimeException e) { debug.appendException(e); } }