Make "adb logcat" pass $ANDROID_LOG_TAGS through again.

But not for Windows, because even dealing with environment variables is
too hard there (and no Windows user has complained yet).

Bug: http://b/30184452
Test: manual
Change-Id: I2d60049ed0049a9532414a7cdecbd0687e06aba7
This commit is contained in:
Elliott Hughes 2016-10-26 15:12:14 -07:00
parent 28c0c0762e
commit 90390302d5

View file

@ -155,7 +155,24 @@ void adb_trace_init(char** argv) {
}
#endif
#if !defined(_WIN32)
// adb historically ignored $ANDROID_LOG_TAGS but passed it through to logcat.
// If set, move it out of the way so that libbase logging doesn't try to parse it.
std::string log_tags;
char* ANDROID_LOG_TAGS = getenv("ANDROID_LOG_TAGS");
if (ANDROID_LOG_TAGS) {
log_tags = ANDROID_LOG_TAGS;
unsetenv("ANDROID_LOG_TAGS");
}
#endif
android::base::InitLogging(argv, &AdbLogger);
#if !defined(_WIN32)
// Put $ANDROID_LOG_TAGS back so we can pass it to logcat.
if (!log_tags.empty()) setenv("ANDROID_LOG_TAGS", log_tags.c_str(), 1);
#endif
setup_trace_mask();
VLOG(ADB) << adb_version();