diff options
author | michaelbai@google.com <michaelbai@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-07 20:46:50 +0000 |
---|---|---|
committer | michaelbai@google.com <michaelbai@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-07 20:46:50 +0000 |
commit | 3132e35cb49119f36a529f2370d9de5887582bc2 (patch) | |
tree | e23bdd40d066e3523e870c46ea9d77189d83d954 /base/logging.cc | |
parent | 16adff66ea7224ddd91d01160a7bcc54f5d8b5a6 (diff) | |
download | chromium_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.cc | 28 |
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); |