diff --git a/adb/adb_trace.cpp b/adb/adb_trace.cpp index eac923d4d..a8ec5fb12 100644 --- a/adb/adb_trace.cpp +++ b/adb/adb_trace.cpp @@ -42,7 +42,11 @@ void AdbLogger(android::base::LogId id, android::base::LogSeverity severity, const char* message) { android::base::StderrLogger(id, severity, tag, file, line, message); #if !ADB_HOST - gLogdLogger(id, severity, tag, file, line, message); + // Only print logs of INFO or higher to logcat, so that `adb logcat` with adbd tracing on + // doesn't result in exponential logging. + if (severity >= android::base::INFO) { + gLogdLogger(id, severity, tag, file, line, message); + } #endif } @@ -137,11 +141,15 @@ static void setup_trace_mask() { // -1 is used for the special values "1" and "all" that enable all // tracing. adb_trace_mask = ~0; - return; + break; } else { adb_trace_mask |= 1 << flag->second; } } + + if (adb_trace_mask != 0) { + android::base::SetMinimumLogSeverity(android::base::VERBOSE); + } } void adb_trace_init(char** argv) { diff --git a/adb/adb_trace.h b/adb/adb_trace.h index fc6560cfb..1d2c8c704 100644 --- a/adb/adb_trace.h +++ b/adb/adb_trace.h @@ -43,11 +43,11 @@ enum AdbTrace { #define VLOG_IS_ON(TAG) \ ((adb_trace_mask & (1 << (TAG))) != 0) -#define VLOG(TAG) \ +#define VLOG(TAG) \ if (LIKELY(!VLOG_IS_ON(TAG))) \ - ; \ - else \ - LOG(INFO) + ; \ + else \ + LOG(DEBUG) // You must define TRACE_TAG before using this macro. #define D(...) \