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

Commit 6b231e13 authored by Mark Salyzyn's avatar Mark Salyzyn Committed by Android Git Automerger
Browse files

am 5302182f: am 4a3380f1: am c36c63c6: Merge "logd: filter on __android_log_is_loggable"

* commit '5302182f':
  logd: filter on __android_log_is_loggable
parents 4d2fb392 5302182f
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -140,8 +140,26 @@ int LogBuffer::log(log_id_t log_id, log_time realtime,
    if ((log_id >= LOG_ID_MAX) || (log_id < 0)) {
        return -EINVAL;
    }

    LogBufferElement *elem = new LogBufferElement(log_id, realtime,
                                                  uid, pid, tid, msg, len);
    int prio = ANDROID_LOG_INFO;
    const char *tag = NULL;
    if (log_id == LOG_ID_EVENTS) {
        tag = android::tagToName(elem->getTag());
    } else {
        prio = *msg;
        tag = msg + 1;
    }
    if (!__android_log_is_loggable(prio, tag, ANDROID_LOG_VERBOSE)) {
        // Log traffic received to total
        pthread_mutex_lock(&mLogElementsLock);
        stats.add(elem);
        stats.subtract(elem);
        pthread_mutex_unlock(&mLogElementsLock);
        delete elem;
        return -EACCES;
    }

    pthread_mutex_lock(&mLogElementsLock);

+5 −1
Original line number Diff line number Diff line
@@ -105,8 +105,12 @@ char *android::tidToName(pid_t tid) {
size_t LogBufferElement::populateDroppedMessage(char *&buffer,
        LogBuffer *parent) {
    static const char tag[] = "chatty";
    static const char format_uid[] = "uid=%u%s%s expire %u line%s";

    if (!__android_log_is_loggable(ANDROID_LOG_INFO, tag, ANDROID_LOG_VERBOSE)) {
        return 0;
    }

    static const char format_uid[] = "uid=%u%s%s expire %u line%s";
    char *name = parent->uidToName(mUid);
    char *commName = android::tidToName(mTid);
    if (!commName && (mTid != mPid)) {