summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Salyzyn2014-10-02 15:07:05 -0500
committerMark Salyzyn2015-06-12 12:35:09 -0500
commite59c469fa89d438d2d7150b7d8cd6b401900709b (patch)
tree6687b356bbb5fc11b9222438b98c9e8dc76eab6a /logd/LogBuffer.cpp
parentc158456f50817ac506f4eed780978e63dd222fe4 (diff)
downloadplatform-system-core-e59c469fa89d438d2d7150b7d8cd6b401900709b.tar.gz
platform-system-core-e59c469fa89d438d2d7150b7d8cd6b401900709b.tar.xz
platform-system-core-e59c469fa89d438d2d7150b7d8cd6b401900709b.zip
logd: filter on __android_log_is_loggable
- Default level when not specified is ANDROID_LOG_VERBOSE which is inert. Bug: 20416721 Bug: 19544788 Bug: 17760225 Change-Id: Icc098e53dc47ceaaeb24ec42eb6f61d6430ec2f6
Diffstat (limited to 'logd/LogBuffer.cpp')
-rw-r--r--logd/LogBuffer.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/logd/LogBuffer.cpp b/logd/LogBuffer.cpp
index 4373e2a9d..0f5071b62 100644
--- a/logd/LogBuffer.cpp
+++ b/logd/LogBuffer.cpp
@@ -140,8 +140,26 @@ int LogBuffer::log(log_id_t log_id, log_time realtime,
140 if ((log_id >= LOG_ID_MAX) || (log_id < 0)) { 140 if ((log_id >= LOG_ID_MAX) || (log_id < 0)) {
141 return -EINVAL; 141 return -EINVAL;
142 } 142 }
143
143 LogBufferElement *elem = new LogBufferElement(log_id, realtime, 144 LogBufferElement *elem = new LogBufferElement(log_id, realtime,
144 uid, pid, tid, msg, len); 145 uid, pid, tid, msg, len);
146 int prio = ANDROID_LOG_INFO;
147 const char *tag = NULL;
148 if (log_id == LOG_ID_EVENTS) {
149 tag = android::tagToName(elem->getTag());
150 } else {
151 prio = *msg;
152 tag = msg + 1;
153 }
154 if (!__android_log_is_loggable(prio, tag, ANDROID_LOG_VERBOSE)) {
155 // Log traffic received to total
156 pthread_mutex_lock(&mLogElementsLock);
157 stats.add(elem);
158 stats.subtract(elem);
159 pthread_mutex_unlock(&mLogElementsLock);
160 delete elem;
161 return -EACCES;
162 }
145 163
146 pthread_mutex_lock(&mLogElementsLock); 164 pthread_mutex_lock(&mLogElementsLock);
147 165