aboutsummaryrefslogtreecommitdiff
path: root/src/common/logging/backend.cpp
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2022-12-17 23:31:09 -0800
committerbunnei <bunneidev@gmail.com>2023-06-03 00:05:26 -0700
commit99296a15108f950c60c7864a374e3ef1f5909e76 (patch)
tree6189575f5e74f658d3181fdd2467bf894a5bf940 /src/common/logging/backend.cpp
parentafdee9abea39637eb145d7ddb98a316a597da1bd (diff)
common: logging: Implement Android logcat backend.
Diffstat (limited to 'src/common/logging/backend.cpp')
-rw-r--r--src/common/logging/backend.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/common/logging/backend.cpp b/src/common/logging/backend.cpp
index f96c7c2221..6e8e8eb36b 100644
--- a/src/common/logging/backend.cpp
+++ b/src/common/logging/backend.cpp
@@ -155,6 +155,26 @@ public:
void EnableForStacktrace() override {}
};
+#ifdef ANDROID
+/**
+ * Backend that writes to the Android logcat
+ */
+class LogcatBackend : public Backend {
+public:
+ explicit LogcatBackend() = default;
+
+ ~LogcatBackend() override = default;
+
+ void Write(const Entry& entry) override {
+ PrintMessageToLogcat(entry);
+ }
+
+ void Flush() override {}
+
+ void EnableForStacktrace() override {}
+};
+#endif
+
bool initialization_in_progress_suppress_logging = true;
/**
@@ -260,6 +280,9 @@ private:
lambda(static_cast<Backend&>(debugger_backend));
lambda(static_cast<Backend&>(color_console_backend));
lambda(static_cast<Backend&>(file_backend));
+#ifdef ANDROID
+ lambda(static_cast<Backend&>(lc_backend));
+#endif
}
static void Deleter(Impl* ptr) {
@@ -272,6 +295,9 @@ private:
DebuggerBackend debugger_backend{};
ColorConsoleBackend color_console_backend{};
FileBackend file_backend;
+#ifdef ANDROID
+ LogcatBackend lc_backend{};
+#endif
MPSCQueue<Entry> message_queue{};
std::chrono::steady_clock::time_point time_origin{std::chrono::steady_clock::now()};