liblog: __android_log_is_loggable support Developer Options

- If logd.tag.<tag> is not found, check if persist.logd.tag.<tag> is available
- Do not turn off the isLoggable functionality on "user" builds

Bug: 19544788
Bug: 17760225
Change-Id: I3fec67b547aa431438965519507033798398e1e1
This commit is contained in:
Mark Salyzyn 2014-10-08 15:58:40 -07:00
parent f75f16a1dd
commit 1f028b2fdf

View file

@ -28,7 +28,7 @@ static int __android_log_level(const char *tag, int def)
return def;
}
{
static const char log_namespace[] = "log.tag.";
static const char log_namespace[] = "persist.log.tag.";
char key[sizeof(log_namespace) + strlen(tag)];
strcpy(key, log_namespace);
@ -37,6 +37,9 @@ static int __android_log_level(const char *tag, int def)
if (__system_property_get(key + 8, buf) <= 0) {
buf[0] = '\0';
}
if (!buf[0] && __system_property_get(key, buf) <= 0) {
buf[0] = '\0';
}
}
switch (toupper(buf[0])) {
case 'V': return ANDROID_LOG_VERBOSE;
@ -53,17 +56,6 @@ static int __android_log_level(const char *tag, int def)
int __android_log_is_loggable(int prio, const char *tag, int def)
{
static char user;
int logLevel;
if (user == 0) {
char buf[PROP_VALUE_MAX];
if (__system_property_get("ro.build.type", buf) <= 0) {
buf[0] = '\0';
}
user = strcmp(buf, "user") ? -1 : 1;
}
logLevel = (user == 1) ? def : __android_log_level(tag, def);
int logLevel = __android_log_level(tag, def);
return logLevel >= 0 && prio >= logLevel;
}