summaryrefslogtreecommitdiffstats
path: root/base/logging.cc
diff options
context:
space:
mode:
authormichaelbai@google.com <michaelbai@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-07 20:46:50 +0000
committermichaelbai@google.com <michaelbai@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-07 20:46:50 +0000
commit3132e35cb49119f36a529f2370d9de5887582bc2 (patch)
treee23bdd40d066e3523e870c46ea9d77189d83d954 /base/logging.cc
parent16adff66ea7224ddd91d01160a7bcc54f5d8b5a6 (diff)
downloadchromium_src-3132e35cb49119f36a529f2370d9de5887582bc2.zip
chromium_src-3132e35cb49119f36a529f2370d9de5887582bc2.tar.gz
chromium_src-3132e35cb49119f36a529f2370d9de5887582bc2.tar.bz2
Upstream android debug and log related files
BUG= TEST= Review URL: http://codereview.chromium.org/7238012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@91748 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/logging.cc')
-rw-r--r--base/logging.cc28
1 files changed, 27 insertions, 1 deletions
diff --git a/base/logging.cc b/base/logging.cc
index e5c8c8d..11ad935 100644
--- a/base/logging.cc
+++ b/base/logging.cc
@@ -58,6 +58,10 @@ typedef pthread_mutex_t* MutexHandle;
#include "base/safe_strerror_posix.h"
#endif
+#if defined(OS_ANDROID)
+#include <android/log.h>
+#endif
+
namespace logging {
DcheckState g_dcheck_state = DISABLE_DCHECK_FOR_NON_OFFICIAL_RELEASE_BUILDS;
@@ -129,6 +133,8 @@ int32 CurrentThreadId() {
return mach_thread_self();
#elif defined(OS_LINUX)
return syscall(__NR_gettid);
+#elif defined(OS_ANDROID)
+ return gettid();
#elif defined(OS_FREEBSD)
// TODO(BSD): find a better thread ID
return reinterpret_cast<int64>(pthread_self());
@@ -546,7 +552,9 @@ LogMessage::LogMessage(const char* file, int line, LogSeverity severity,
}
LogMessage::~LogMessage() {
-#ifndef NDEBUG
+ // TODO(port): enable stacktrace generation on LOG_FATAL once backtrace are
+ // working in Android.
+#if !defined(NDEBUG) && !defined(OS_ANDROID)
if (severity_ == LOG_FATAL) {
// Include a stack trace on a fatal.
base::debug::StackTrace trace;
@@ -568,6 +576,24 @@ LogMessage::~LogMessage() {
logging_destination == LOG_TO_BOTH_FILE_AND_SYSTEM_DEBUG_LOG) {
#if defined(OS_WIN)
OutputDebugStringA(str_newline.c_str());
+#elif defined(OS_ANDROID)
+ android_LogPriority priority = ANDROID_LOG_UNKNOWN;
+ switch (severity_) {
+ case LOG_INFO:
+ priority = ANDROID_LOG_INFO;
+ break;
+ case LOG_WARNING:
+ priority = ANDROID_LOG_WARN;
+ break;
+ case LOG_ERROR:
+ case LOG_ERROR_REPORT:
+ priority = ANDROID_LOG_ERROR;
+ break;
+ case LOG_FATAL:
+ priority = ANDROID_LOG_FATAL;
+ break;
+ }
+ __android_log_write(priority, "chromium", str_newline.c_str());
#endif
fprintf(stderr, "%s", str_newline.c_str());
fflush(stderr);