Merge pull request #570 from jiuqiant/patch-1

Connect glog to Andorid logging API
This commit is contained in:
Sergiu Deitsch 2020-09-29 22:22:12 +02:00 committed by GitHub
commit fa0d50f9fc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1525,6 +1525,23 @@ ostream& LogMessage::stream() {
return data_->stream_;
}
namespace {
#if defined(__ANDROID__)
int AndroidLogLevel(const int severity) {
switch (severity) {
case 3:
return ANDROID_LOG_FATAL;
case 2:
return ANDROID_LOG_ERROR;
case 1:
return ANDROID_LOG_WARN;
default:
return ANDROID_LOG_INFO;
}
}
#endif // defined(__ANDROID__)
} // namespace
// Flush buffered message, called by the destructor, or any other function
// that needs to synchronize the log.
void LogMessage::Flush() {
@ -1559,7 +1576,13 @@ void LogMessage::Flush() {
++num_messages_[static_cast<int>(data_->severity_)];
}
LogDestination::WaitForSinks(data_);
#if defined(__ANDROID__)
const int level = AndroidLogLevel((int)data_->severity_);
const std::string text = std::string(data_->message_text_);
__android_log_write(level, "native", text.substr(0,data_->num_chars_to_log_).c_str());
#endif // !defined(__ANDROID__)
if (append_newline) {
// Fix the ostrstream back how it was before we screwed with it.
// It's 99.44% certain that we don't need to worry about doing this.