Merge changes from topic "stats_log"

am: 68f2c85354

Change-Id: I2dce867c04ea61a05b32063f321414f459cbe26c
This commit is contained in:
yaochen 2017-11-15 19:26:12 +00:00 committed by android-build-merger
commit 11bb6bbf41
7 changed files with 30 additions and 7 deletions

View file

@ -95,6 +95,8 @@ int __android_log_btwrite(int32_t tag, char type, const void* payload,
size_t len); size_t len);
int __android_log_bswrite(int32_t tag, const char* payload); int __android_log_bswrite(int32_t tag, const char* payload);
int __android_log_stats_bwrite(int32_t tag, const void* payload, size_t len);
#define android_bWriteLog(tag, payload, len) \ #define android_bWriteLog(tag, payload, len) \
__android_log_bwrite(tag, payload, len) __android_log_bwrite(tag, payload, len)
#define android_btWriteLog(tag, type, payload, len) \ #define android_btWriteLog(tag, type, payload, len) \

View file

@ -31,8 +31,9 @@ typedef enum log_id {
LOG_ID_EVENTS = 2, LOG_ID_EVENTS = 2,
LOG_ID_SYSTEM = 3, LOG_ID_SYSTEM = 3,
LOG_ID_CRASH = 4, LOG_ID_CRASH = 4,
LOG_ID_SECURITY = 5, LOG_ID_STATS = 5,
LOG_ID_KERNEL = 6, /* place last, third-parties can not use it */ LOG_ID_SECURITY = 6,
LOG_ID_KERNEL = 7, /* place last, third-parties can not use it */
LOG_ID_MAX LOG_ID_MAX
} log_id_t; } log_id_t;

View file

@ -301,7 +301,7 @@ LIBLOG_ABI_PUBLIC int android_log_write_list(android_log_context ctx,
const char* msg; const char* msg;
ssize_t len; ssize_t len;
if ((id != LOG_ID_EVENTS) && (id != LOG_ID_SECURITY)) { if ((id != LOG_ID_EVENTS) && (id != LOG_ID_SECURITY) && (id != LOG_ID_STATS)) {
return -EINVAL; return -EINVAL;
} }
@ -326,7 +326,9 @@ LIBLOG_ABI_PUBLIC int android_log_write_list(android_log_context ctx,
} }
return (id == LOG_ID_EVENTS) return (id == LOG_ID_EVENTS)
? __android_log_bwrite(context->tag, msg, len) ? __android_log_bwrite(context->tag, msg, len)
: __android_log_security_bwrite(context->tag, msg, len); : ((id == LOG_ID_STATS)
? __android_log_stats_bwrite(context->tag, msg, len)
: __android_log_security_bwrite(context->tag, msg, len));
} }
LIBLOG_ABI_PRIVATE int android_log_write_list_buffer(android_log_context ctx, LIBLOG_ABI_PRIVATE int android_log_write_list_buffer(android_log_context ctx,

View file

@ -22,12 +22,13 @@
/* In the future, we would like to make this list extensible */ /* In the future, we would like to make this list extensible */
static const char* LOG_NAME[LOG_ID_MAX] = { static const char* LOG_NAME[LOG_ID_MAX] = {
/* clang-format off */ /* clang-format off */
[LOG_ID_MAIN] = "main", [LOG_ID_MAIN] = "main",
[LOG_ID_RADIO] = "radio", [LOG_ID_RADIO] = "radio",
[LOG_ID_EVENTS] = "events", [LOG_ID_EVENTS] = "events",
[LOG_ID_SYSTEM] = "system", [LOG_ID_SYSTEM] = "system",
[LOG_ID_CRASH] = "crash", [LOG_ID_CRASH] = "crash",
[LOG_ID_STATS] = "stats",
[LOG_ID_SECURITY] = "security", [LOG_ID_SECURITY] = "security",
[LOG_ID_KERNEL] = "kernel", [LOG_ID_KERNEL] = "kernel",
/* clang-format on */ /* clang-format on */

View file

@ -546,6 +546,19 @@ LIBLOG_ABI_PUBLIC int __android_log_bwrite(int32_t tag, const void* payload,
return write_to_log(LOG_ID_EVENTS, vec, 2); return write_to_log(LOG_ID_EVENTS, vec, 2);
} }
LIBLOG_ABI_PUBLIC int __android_log_stats_bwrite(int32_t tag,
const void* payload,
size_t len) {
struct iovec vec[2];
vec[0].iov_base = &tag;
vec[0].iov_len = sizeof(tag);
vec[1].iov_base = (void*)payload;
vec[1].iov_len = len;
return write_to_log(LOG_ID_STATS, vec, 2);
}
LIBLOG_ABI_PUBLIC int __android_log_security_bwrite(int32_t tag, LIBLOG_ABI_PUBLIC int __android_log_security_bwrite(int32_t tag,
const void* payload, const void* payload,
size_t len) { size_t len) {

View file

@ -140,5 +140,8 @@
1397638484 snet_event_log (subtag|3) (uid|1) (message|3) 1397638484 snet_event_log (subtag|3) (uid|1) (message|3)
# for events that go to stats log buffer
1937006964 stats_log (atom_id|1|5),(data|4)
# NOTE - the range 1000000-2000000 is reserved for partners and others who # NOTE - the range 1000000-2000000 is reserved for partners and others who
# want to define their own log tags without conflicting with the core platform. # want to define their own log tags without conflicting with the core platform.

View file

@ -1126,8 +1126,9 @@ static int __logcat(android_logcat_context_internal* context) {
} }
if (found) continue; if (found) continue;
bool binary = bool binary = !strcmp(name, "events") ||
!strcmp(name, "events") || !strcmp(name, "security"); !strcmp(name, "security") ||
!strcmp(name, "stats");
log_device_t* d = new log_device_t(name, binary); log_device_t* d = new log_device_t(name, binary);
if (dev) { if (dev) {