diff options
author | Konstantin Käfer <mail@kkaefer.com> | 2016-11-22 15:43:19 +0100 |
---|---|---|
committer | Konstantin Käfer <mail@kkaefer.com> | 2016-11-22 20:58:51 +0100 |
commit | e76de0540284118845c93c4351c82c6c8d5a090a (patch) | |
tree | dc295f87b74c5a4766444f6d1e7020e6219017a8 /src/mbgl/util | |
parent | 117863f1114551407c481abc752f5fcfd139c878 (diff) | |
download | qtlocation-mapboxgl-e76de0540284118845c93c4351c82c6c8d5a090a.tar.gz |
[build] move logging to util
Diffstat (limited to 'src/mbgl/util')
-rw-r--r-- | src/mbgl/util/event.cpp | 34 | ||||
-rw-r--r-- | src/mbgl/util/logging.cpp | 67 | ||||
-rw-r--r-- | src/mbgl/util/mapbox.cpp | 2 | ||||
-rw-r--r-- | src/mbgl/util/stopwatch.cpp | 2 | ||||
-rw-r--r-- | src/mbgl/util/stopwatch.hpp | 2 | ||||
-rw-r--r-- | src/mbgl/util/thread.hpp | 2 |
6 files changed, 105 insertions, 4 deletions
diff --git a/src/mbgl/util/event.cpp b/src/mbgl/util/event.cpp new file mode 100644 index 0000000000..3a3be20f5c --- /dev/null +++ b/src/mbgl/util/event.cpp @@ -0,0 +1,34 @@ +#include <mbgl/util/event.hpp> +#include <mbgl/util/enum.hpp> + +namespace mbgl { + +MBGL_DEFINE_ENUM(EventSeverity, { + { EventSeverity::Debug, "DEBUG" }, + { EventSeverity::Info, "INFO" }, + { EventSeverity::Warning, "WARNING" }, + { EventSeverity::Error, "ERROR" }, + { EventSeverity(-1), "UNKNOWN" }, +}); + +MBGL_DEFINE_ENUM(Event, { + { Event::General, "General" }, + { Event::Setup, "Setup" }, + { Event::Shader, "Shader" }, + { Event::ParseStyle, "ParseStyle" }, + { Event::ParseTile, "ParseTile" }, + { Event::Render, "Render" }, + { Event::Style, "Style" }, + { Event::Database, "Database" }, + { Event::HttpRequest, "HttpRequest" }, + { Event::Sprite, "Sprite" }, + { Event::Image, "Image" }, + { Event::OpenGL, "OpenGL" }, + { Event::JNI, "JNI" }, + { Event::Android, "Android" }, + { Event::Crash, "Crash" }, + { Event::Glyph, "Glyph" }, + { Event(-1), "Unknown" }, +}); + +} // namespace mbgl diff --git a/src/mbgl/util/logging.cpp b/src/mbgl/util/logging.cpp new file mode 100644 index 0000000000..939f1def64 --- /dev/null +++ b/src/mbgl/util/logging.cpp @@ -0,0 +1,67 @@ +#include <mbgl/util/logging.hpp> +#include <mbgl/util/enum.hpp> +#include <mbgl/util/thread.hpp> + +#include <cstdio> +#include <cstdarg> +#include <sstream> + +namespace mbgl { + +namespace { + +static std::unique_ptr<Log::Observer> currentObserver; + +} // namespace + +void Log::setObserver(std::unique_ptr<Observer> observer) { + currentObserver = std::move(observer); +} + +std::unique_ptr<Log::Observer> Log::removeObserver() { + std::unique_ptr<Observer> observer; + std::swap(observer, currentObserver); + return observer; +} + +void Log::record(EventSeverity severity, Event event, const std::string &msg) { + record(severity, event, -1, msg); +} + +void Log::record(EventSeverity severity, Event event, const char* format, ...) { + va_list args; + va_start(args, format); + char msg[4096]; + vsnprintf(msg, sizeof(msg), format, args); + va_end(args); + + record(severity, event, -1, msg); +} + +void Log::record(EventSeverity severity, Event event, int64_t code) { + record(severity, event, code, std::string()); +} + +void Log::record(EventSeverity severity, Event event, int64_t code, const std::string &msg) { + if (currentObserver && severity != EventSeverity::Debug && + currentObserver->onRecord(severity, event, code, msg)) { + return; + } + + std::stringstream logStream; + + logStream << "{" << platform::getCurrentThreadName() << "}"; + logStream << "[" << Enum<Event>::toString(event) << "]"; + + if (code >= 0) { + logStream << "(" << code << ")"; + } + + if (!msg.empty()) { + logStream << ": " << msg; + } + + platformRecord(severity, logStream.str()); +} + +} // namespace mbgl diff --git a/src/mbgl/util/mapbox.cpp b/src/mbgl/util/mapbox.cpp index 89f6a55167..839924d77c 100644 --- a/src/mbgl/util/mapbox.cpp +++ b/src/mbgl/util/mapbox.cpp @@ -1,6 +1,6 @@ #include <mbgl/util/mapbox.hpp> #include <mbgl/util/constants.hpp> -#include <mbgl/platform/log.hpp> +#include <mbgl/util/logging.hpp> #include <stdexcept> #include <vector> diff --git a/src/mbgl/util/stopwatch.cpp b/src/mbgl/util/stopwatch.cpp index d588b79254..3883d8535f 100644 --- a/src/mbgl/util/stopwatch.cpp +++ b/src/mbgl/util/stopwatch.cpp @@ -2,7 +2,7 @@ #include <mbgl/util/stopwatch.hpp> #include <mbgl/util/string.hpp> #include <mbgl/util/chrono.hpp> -#include <mbgl/platform/log.hpp> +#include <mbgl/util/logging.hpp> #include <iostream> #include <atomic> diff --git a/src/mbgl/util/stopwatch.hpp b/src/mbgl/util/stopwatch.hpp index 74cc2c412d..6214dae958 100644 --- a/src/mbgl/util/stopwatch.hpp +++ b/src/mbgl/util/stopwatch.hpp @@ -1,6 +1,6 @@ #pragma once -#include <mbgl/platform/event.hpp> +#include <mbgl/util/event.hpp> #include <mbgl/util/chrono.hpp> #include <string> diff --git a/src/mbgl/util/thread.hpp b/src/mbgl/util/thread.hpp index 91eef745fa..8cfef8a764 100644 --- a/src/mbgl/util/thread.hpp +++ b/src/mbgl/util/thread.hpp @@ -8,7 +8,7 @@ #include <mbgl/util/run_loop.hpp> #include <mbgl/util/thread_context.hpp> -#include <mbgl/platform/platform.hpp> +#include <mbgl/util/platform.hpp> #include <pthread.h> |