summaryrefslogtreecommitdiff
path: root/platform/node/src/node_logging.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'platform/node/src/node_logging.hpp')
-rw-r--r--platform/node/src/node_logging.hpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/platform/node/src/node_logging.hpp b/platform/node/src/node_logging.hpp
new file mode 100644
index 0000000000..a12603ba6e
--- /dev/null
+++ b/platform/node/src/node_logging.hpp
@@ -0,0 +1,32 @@
+#pragma once
+
+#include "util/async_queue.hpp"
+
+#include <mbgl/util/logging.hpp>
+
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wshadow"
+#include <nan.h>
+#pragma GCC diagnostic pop
+
+namespace node_mbgl {
+
+namespace util { template <typename T> class AsyncQueue; }
+
+class NodeLogObserver : public mbgl::Log::Observer {
+public:
+ NodeLogObserver(v8::Local<v8::Object> target);
+ ~NodeLogObserver();
+
+ // Log::Observer implementation
+ virtual bool onRecord(mbgl::EventSeverity severity, mbgl::Event event, int64_t code, const std::string &msg) override;
+
+private:
+ Nan::Persistent<v8::Object> module;
+
+ struct LogMessage;
+ util::AsyncQueue<LogMessage>* queue;
+};
+
+}