| Index: runtime/vm/service_event.cc
|
| diff --git a/runtime/vm/service_event.cc b/runtime/vm/service_event.cc
|
| index a53ace2d9343db46582249460aef121a31a817ad..edbb502f2cea91e959b93fff8fc13bb1dde493ac 100644
|
| --- a/runtime/vm/service_event.cc
|
| +++ b/runtime/vm/service_event.cc
|
| @@ -89,6 +89,8 @@ const char* ServiceEvent::KindAsCString() const {
|
| return "Inspect";
|
| case kEmbedder:
|
| return embedder_kind();
|
| + case kLogging:
|
| + return "_Logging";
|
| case kDebuggerSettingsUpdate:
|
| return "_DebuggerSettingsUpdate";
|
| case kIllegal:
|
| @@ -126,6 +128,9 @@ const char* ServiceEvent::stream_id() const {
|
| case kEmbedder:
|
| return embedder_stream_id_;
|
|
|
| + case kLogging:
|
| + return Service::logging_stream.id();
|
| +
|
| default:
|
| UNREACHABLE();
|
| return NULL;
|
| @@ -135,9 +140,7 @@ const char* ServiceEvent::stream_id() const {
|
|
|
| void ServiceEvent::PrintJSON(JSONStream* js) const {
|
| JSONObject jsobj(js);
|
| - jsobj.AddProperty("type", "Event");
|
| - jsobj.AddProperty("kind", KindAsCString());
|
| - jsobj.AddProperty("isolate", isolate());
|
| + PrintJSONHeader(&jsobj);
|
| if (kind() == kPauseBreakpoint) {
|
| JSONArray jsarr(&jsobj, "pauseBreakpoints");
|
| // TODO(rmacnak): If we are paused at more than one breakpoint,
|
| @@ -177,6 +180,25 @@ void ServiceEvent::PrintJSON(JSONStream* js) const {
|
| if (bytes() != NULL) {
|
| jsobj.AddPropertyBase64("bytes", bytes(), bytes_length());
|
| }
|
| + if (kind() == kLogging) {
|
| + JSONObject logRecord(&jsobj, "logRecord");
|
| + logRecord.AddProperty64("sequenceNumber", log_record_.sequence_number);
|
| + logRecord.AddPropertyTimeMillis("time", log_record_.timestamp);
|
| + logRecord.AddProperty64("level", log_record_.level);
|
| + logRecord.AddProperty("loggerName", *(log_record_.name));
|
| + logRecord.AddProperty("message", *(log_record_.message));
|
| + logRecord.AddProperty("zone", *(log_record_.zone));
|
| + logRecord.AddProperty("error", *(log_record_.error));
|
| + logRecord.AddProperty("stackTrace", *(log_record_.stack_trace));
|
| + }
|
| +}
|
| +
|
| +
|
| +void ServiceEvent::PrintJSONHeader(JSONObject* jsobj) const {
|
| + ASSERT(jsobj != NULL);
|
| + jsobj->AddProperty("type", "Event");
|
| + jsobj->AddProperty("kind", KindAsCString());
|
| + jsobj->AddProperty("isolate", isolate());
|
| }
|
|
|
| } // namespace dart
|
|
|