Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 95c4497b authored by Josh Gao's avatar Josh Gao
Browse files

adb: don't spew to logcat when tracing is enabled.

When persist.adb.trace_mask is used to enable verbose logging, avoid
exponential logging when a user runs `adb logcat`. As a side-effect,
set the minimum logging level to include everything when ADB_TRACE is
used on the client (which is something we want anyway).

Bug: http://b/72971016
Test: `adb shell 'setprop persist.adb.trace_mask; killall adbd'; adb logcat`
Change-Id: Id4bca1f3933a920345499dbeaeb103c8a2e220cd
parent 9d6b5592
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -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
    // 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) {
+4 −4
Original line number Diff line number Diff line
@@ -47,7 +47,7 @@ enum AdbTrace {
    if (LIKELY(!VLOG_IS_ON(TAG))) \
        ;                         \
    else                          \
        LOG(INFO)
        LOG(DEBUG)

// You must define TRACE_TAG before using this macro.
#define D(...) \