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

Commit 0d32ffd2 authored by Mark Salyzyn's avatar Mark Salyzyn Committed by android-build-merger
Browse files

Merge "logd: Add support for *.logd.filter" am: 95ec339f am: 2c0f84da

am: c4b13a06

* commit 'c4b13a06':
  logd: Add support for *.logd.filter
parents b3ff4f13 c4b13a06
Loading
Loading
Loading
Loading
+37 −4
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
#include <ctype.h>

#include <base/stringprintf.h>
#include <cutils/properties.h>

#include "LogWhiteBlackList.h"

@@ -49,7 +50,8 @@ std::string Prune::format() {
    return std::string("/");
}

PruneList::PruneList() : mWorstUidEnabled(true) {
PruneList::PruneList() {
    init(NULL);
}

PruneList::~PruneList() {
@@ -72,13 +74,44 @@ int PruneList::init(const char *str) {
        it = mNaughty.erase(it);
    }

    if (!str) {
        return 0;
    static const char _default[] = "default";
    // default here means take ro.logd.filter, persist.logd.filter then
    // internal default in that order.
    if (str && !strcmp(str, _default)) {
        str = NULL;
    }
    static const char _disable[] = "disable";
    if (str && !strcmp(str, _disable)) {
        str = "";
    }

    std::string filter;

    if (str) {
        filter = str;
    } else {
        char property[PROPERTY_VALUE_MAX];
        property_get("ro.logd.filter", property, _default);
        filter = property;
        property_get("persist.logd.filter", property, filter.c_str());
        // default here means take ro.logd.filter
        if (strcmp(property, _default)) {
            filter = property;
        }
    }

    // default here means take internal default.
    if (filter == _default) {
        // See README.property for description of filter format
        filter = "~!";
    }
    if (filter == _disable) {
        filter = "";
    }

    mWorstUidEnabled = false;

    for(; *str; ++str) {
    for(str = filter.c_str(); *str; ++str) {
        if (isspace(*str)) {
            continue;
        }
+14 −6
Original line number Diff line number Diff line
@@ -12,16 +12,24 @@ ro.build.type string if user, logd.statistics & logd.klogd
                                         default false
persist.logd.logpersistd    string       Enable logpersist daemon, "logcatd"
                                         turns on logcat -f in logd context
persist.logd.size          number 256K   default size of the buffer for all
                                         log ids at initial startup, at runtime
                                         use: logcat -b all -G <value>
persist.logd.size          number 256K   Global default size of the buffer for
                                         all log ids at initial startup, at
                                         runtime use: logcat -b all -G <value>
persist.logd.size.main     number 256K   Size of the buffer for the main log
persist.logd.size.system   number 256K   Size of the buffer for the system log
persist.logd.size.radio    number 256K   Size of the buffer for the radio log
persist.logd.size.event    number 256K   Size of the buffer for the event log
persist.logd.size.crash    number 256K   Size of the buffer for the crash log
persist.logd.filter         string       Pruning filter to optimize content,
                                         default is ro.logd.filter or
                                         "~!" which means to prune the oldest
                                         entries of chattiest UID. At runtime
                                         use: logcat -P "<string>"

NB:
- number support multipliers (K or M) for convenience. Range is limited
  to between 64K and 256M for log buffer sizes. Individual logs override the
  global default.
- Number support multipliers (K or M) for convenience. Range is limited
  to between 64K and 256M for log buffer sizes. Individual log buffer ids
  such as main, system, ... override global default.
- Pruning filter is of form of a space-separated list of [~][UID][/PID]
  references, where '~' prefix means to blacklist otherwise whitelist. For
  blacklisting, UID may be a '!' to instead reference the chattiest client.
+1 −0
Original line number Diff line number Diff line
@@ -212,6 +212,7 @@ static void *reinit_thread_start(void * /*obj*/) {
        // Anything that reads persist.<property>
        if (logBuf) {
            logBuf->init();
            logBuf->initPrune(NULL);
        }
    }