libmetricslogger: Lookup tag ID by name at runtime.

This allows the removal of the hardcoded value (which can become obsolete).

Bug: 65991710
Test: none
Change-Id: I4c9c668dbfe728852ab70d2a0ac8e6bb82a77ad3
This commit is contained in:
James Hawkins 2017-09-19 16:37:00 -07:00
parent 8f3989b820
commit b2f4244f52
2 changed files with 12 additions and 9 deletions

View file

@ -18,12 +18,6 @@ cc_defaults {
"-Wall",
"-Wextra",
"-Werror",
// The following define maps the sysui_multi_action logtag ID as represented by:
// frameworks/base/core/java/com/android/internal/logging/EventLogTags.logtags
//
// TODO(jhawkins): Query this value at runtime.
"-DMULTI_ACTION_LOG_TAG=524292",
],
}

View file

@ -18,28 +18,37 @@
#include <cstdlib>
#include <log/event_tag_map.h>
#include <log/log_event_list.h>
namespace {
EventTagMap* kEventTagMap = android_openEventTagMap(nullptr);
const int kSysuiMultiActionTag = android_lookupEventTagNum(
kEventTagMap, "sysui_multi_action", "(content|4)", ANDROID_LOG_UNKNOWN);
} // namespace
namespace android {
namespace metricslogger {
// Mirror com.android.internal.logging.MetricsLogger#histogram().
void LogHistogram(const std::string& event, int32_t data) {
android_log_event_list log(MULTI_ACTION_LOG_TAG);
android_log_event_list log(kSysuiMultiActionTag);
log << LOGBUILDER_CATEGORY << LOGBUILDER_HISTOGRAM << LOGBUILDER_NAME << event
<< LOGBUILDER_BUCKET << data << LOGBUILDER_VALUE << 1 << LOG_ID_EVENTS;
}
// Mirror com.android.internal.logging.MetricsLogger#count().
void LogCounter(const std::string& name, int32_t val) {
android_log_event_list log(MULTI_ACTION_LOG_TAG);
android_log_event_list log(kSysuiMultiActionTag);
log << LOGBUILDER_CATEGORY << LOGBUILDER_COUNTER << LOGBUILDER_NAME << name << LOGBUILDER_VALUE
<< val << LOG_ID_EVENTS;
}
// Mirror com.android.internal.logging.MetricsLogger#action().
void LogMultiAction(int32_t category, int32_t field, const std::string& value) {
android_log_event_list log(MULTI_ACTION_LOG_TAG);
android_log_event_list log(kSysuiMultiActionTag);
log << LOGBUILDER_CATEGORY << category << LOGBUILDER_TYPE << TYPE_ACTION
<< field << value << LOG_ID_EVENTS;
}