Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1080)

Unified Diff: runtime/vm/service_event.cc

Issue 1241683005: Support piping log data over the service protocol (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/vm/service_event.h ('k') | runtime/vm/timeline.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « runtime/vm/service_event.h ('k') | runtime/vm/timeline.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698