summaryrefslogtreecommitdiffstats
path: root/src/common/logging/text_formatter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/logging/text_formatter.cpp')
-rw-r--r--src/common/logging/text_formatter.cpp35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/common/logging/text_formatter.cpp b/src/common/logging/text_formatter.cpp
index 09398ea64..709f610a3 100644
--- a/src/common/logging/text_formatter.cpp
+++ b/src/common/logging/text_formatter.cpp
@@ -8,6 +8,10 @@
#include <windows.h>
#endif
+#ifdef ANDROID
+#include <android/log.h>
+#endif
+
#include "common/assert.h"
#include "common/logging/filter.h"
#include "common/logging/log.h"
@@ -106,4 +110,35 @@ void PrintColoredMessage(const Entry& entry) {
#undef ESC
#endif
}
+
+void PrintMessageToLogcat(const Entry& entry) {
+#ifdef ANDROID
+ const auto str = FormatLogMessage(entry);
+
+ android_LogPriority android_log_priority;
+ switch (entry.log_level) {
+ case Level::Trace:
+ android_log_priority = ANDROID_LOG_VERBOSE;
+ break;
+ case Level::Debug:
+ android_log_priority = ANDROID_LOG_DEBUG;
+ break;
+ case Level::Info:
+ android_log_priority = ANDROID_LOG_INFO;
+ break;
+ case Level::Warning:
+ android_log_priority = ANDROID_LOG_WARN;
+ break;
+ case Level::Error:
+ android_log_priority = ANDROID_LOG_ERROR;
+ break;
+ case Level::Critical:
+ android_log_priority = ANDROID_LOG_FATAL;
+ break;
+ case Level::Count:
+ UNREACHABLE();
+ }
+ __android_log_print(android_log_priority, "CitraNative", "%s", str.c_str());
+#endif
+}
} // namespace Common::Log