summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThiago Marcos P. Santos <thiago@mapbox.com>2015-03-15 03:20:53 +0200
committerKonstantin Käfer <mail@kkaefer.com>2015-03-18 12:51:33 +0100
commit3254cdc85c4a836cb57b2b56770e5a1ec26adc23 (patch)
tree4898d19879ecf1825309cd7f9c43faa24b14f97b
parent66841bf7eb0d85b5f7c38092e17b9cc16a1dc18a (diff)
downloadqtlocation-mapboxgl-3254cdc85c4a836cb57b2b56770e5a1ec26adc23.tar.gz
Log the Environment ID and the Thread name
To make it easier to debug, add the Environment ID and the Thread name to the log messages. For instance log messages from the TileParser will look like: [WARNING] {0}{TileWorker_15/18653/9486}[ParseTile]: some relevant warning message | | | | | | | +-> Component | | +--------------------> Thread name | +----------------------------------> Environment ID +------------------------------------------> Severity level Log messages that are not inside an Environment::Scope will work normally and will look like: [WARNING] [JNI]: some relevant warning message Fixes #882.
-rw-r--r--include/mbgl/platform/log.hpp2
-rw-r--r--platform/android/log_android.cpp7
-rw-r--r--platform/darwin/log_nslog.mm6
-rw-r--r--platform/default/log_stderr.cpp4
-rw-r--r--src/mbgl/platform/log.cpp26
5 files changed, 32 insertions, 13 deletions
diff --git a/include/mbgl/platform/log.hpp b/include/mbgl/platform/log.hpp
index de7f131714..5d287eb572 100644
--- a/include/mbgl/platform/log.hpp
+++ b/include/mbgl/platform/log.hpp
@@ -68,7 +68,7 @@ private:
// This method is the data sink that must be implemented by each platform we
// support. It should ideally output the error message in a human readable
// format to the developer.
- static void platformRecord(EventSeverity severity, Event event, int64_t code, const std::string &msg);
+ static void platformRecord(EventSeverity severity, const std::string &msg);
};
}
diff --git a/platform/android/log_android.cpp b/platform/android/log_android.cpp
index 9de8232bac..e5c8cfd812 100644
--- a/platform/android/log_android.cpp
+++ b/platform/android/log_android.cpp
@@ -1,8 +1,5 @@
#include <mbgl/platform/log.hpp>
-#define __STDC_FORMAT_MACROS // NDK bug workaround: https://code.google.com/p/android/issues/detail?id=72349
-#include <cinttypes>
-
#include <android/log.h>
namespace mbgl {
@@ -30,8 +27,8 @@ int severityToPriority(EventSeverity severity) {
} // namespace
-void Log::platformRecord(EventSeverity severity, Event event, int64_t code, const std::string &msg) {
- __android_log_print(severityToPriority(severity), EventClass(event).c_str(), "(%" PRId64 ") %s", code, msg.c_str());
+void Log::platformRecord(EventSeverity severity, const std::string &msg) {
+ __android_log_print(severityToPriority(severity), "mbgl", "%s", msg.c_str());
}
}
diff --git a/platform/darwin/log_nslog.mm b/platform/darwin/log_nslog.mm
index 5d53ed812f..a2e31968ab 100644
--- a/platform/darwin/log_nslog.mm
+++ b/platform/darwin/log_nslog.mm
@@ -4,12 +4,10 @@
namespace mbgl {
-void Log::platformRecord(EventSeverity severity, Event event, int64_t code,
- const std::string &msg) {
+void Log::platformRecord(EventSeverity severity, const std::string &msg) {
NSString *message =
[[NSString alloc] initWithBytes:msg.data() length:msg.size() encoding:NSUTF8StringEncoding];
- NSLog(@"[%s] %s: (%lld) %@", EventSeverityClass(severity).c_str(), EventClass(event).c_str(),
- code, message);
+ NSLog(@"[%s] %@", EventSeverityClass(severity).c_str(), message);
}
}
diff --git a/platform/default/log_stderr.cpp b/platform/default/log_stderr.cpp
index 3305176d96..f7ef341845 100644
--- a/platform/default/log_stderr.cpp
+++ b/platform/default/log_stderr.cpp
@@ -4,8 +4,8 @@
namespace mbgl {
-void Log::platformRecord(EventSeverity severity, Event event, int64_t code, const std::string &msg) {
- std::cerr << "[" << severity << "] " << event << ": (" << code << ") " << msg << std::endl;
+void Log::platformRecord(EventSeverity severity, const std::string &msg) {
+ std::cerr << "[" << severity << "] " << msg << std::endl;
}
}
diff --git a/src/mbgl/platform/log.cpp b/src/mbgl/platform/log.cpp
index e9712f727c..d6cbc4fd11 100644
--- a/src/mbgl/platform/log.cpp
+++ b/src/mbgl/platform/log.cpp
@@ -1,6 +1,9 @@
#include <mbgl/platform/log.hpp>
+#include <mbgl/map/environment.hpp>
+
#include <cstdarg>
+#include <sstream>
namespace mbgl {
@@ -37,7 +40,28 @@ void Log::record(EventSeverity severity, Event event, int64_t code, const std::s
return;
}
- platformRecord(severity, event, code, msg);
+ std::stringstream logStream;
+
+ if (Environment::inScope()) {
+ logStream << "{" << Environment::Get().getID() << "}";
+ }
+
+ const std::string threadName = Environment::threadName();
+ if (!threadName.empty()) {
+ logStream << "{" << threadName << "}";
+ }
+
+ logStream << "[" << event << "]";
+
+ if (code >= 0) {
+ logStream << "(" << code << ")";
+ }
+
+ if (!msg.empty()) {
+ logStream << ": " << msg;
+ }
+
+ platformRecord(severity, logStream.str());
}
}