am 95e7cb5b: Merge "healthd: logd: add timestamp to kernel logged battery messages"

* commit '95e7cb5b8e8fa67eb32377325fa6fa8472500baa':
  healthd: logd: add timestamp to kernel logged battery messages
This commit is contained in:
Mark Salyzyn 2015-08-12 14:25:19 +00:00 committed by Android Git Automerger
commit e49aba5413
2 changed files with 39 additions and 5 deletions

View file

@ -24,11 +24,13 @@
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
#include <batteryservice/BatteryService.h>
#include <cutils/klog.h>
#include <cutils/properties.h>
#include <sys/types.h>
#include <log/log_read.h>
#include <utils/Errors.h>
#include <utils/String8.h>
#include <utils/Vector.h>
@ -265,10 +267,32 @@ bool BatteryMonitor::update(void) {
"battery none");
}
KLOG_WARNING(LOG_TAG, "%s chg=%s%s%s\n", dmesgline,
props.chargerAcOnline ? "a" : "",
props.chargerUsbOnline ? "u" : "",
props.chargerWirelessOnline ? "w" : "");
size_t len = strlen(dmesgline);
snprintf(dmesgline + len, sizeof(dmesgline) - len, " chg=%s%s%s",
props.chargerAcOnline ? "a" : "",
props.chargerUsbOnline ? "u" : "",
props.chargerWirelessOnline ? "w" : "");
log_time realtime(CLOCK_REALTIME);
time_t t = realtime.tv_sec;
struct tm *tmp = gmtime(&t);
if (tmp) {
static const char fmt[] = " %Y-%m-%d %H:%M:%S.XXXXXXXXX UTC";
len = strlen(dmesgline);
if ((len < (sizeof(dmesgline) - sizeof(fmt) - 8)) // margin
&& strftime(dmesgline + len, sizeof(dmesgline) - len,
fmt, tmp)) {
char *usec = strchr(dmesgline + len, 'X');
if (usec) {
len = usec - dmesgline;
snprintf(dmesgline + len, sizeof(dmesgline) - len,
"%09u", realtime.tv_nsec);
usec[9] = ' ';
}
}
}
KLOG_WARNING(LOG_TAG, "%s\n", dmesgline);
}
healthd_mode_ops->battery_update(&props);

View file

@ -254,6 +254,7 @@ void LogKlog::sniffTime(log_time &now, const char **buf, bool reverse) {
if ((cp = now.strptime(*buf, "[ %s.%q]"))) {
static const char suspend[] = "PM: suspend entry ";
static const char resume[] = "PM: suspend exit ";
static const char healthd[] = "healthd: battery ";
static const char suspended[] = "Suspended for ";
if (isspace(*cp)) {
@ -263,6 +264,15 @@ void LogKlog::sniffTime(log_time &now, const char **buf, bool reverse) {
calculateCorrection(now, cp + sizeof(suspend) - 1);
} else if (!strncmp(cp, resume, sizeof(resume) - 1)) {
calculateCorrection(now, cp + sizeof(resume) - 1);
} else if (!strncmp(cp, healthd, sizeof(healthd) - 1)) {
// look for " 2???-??-?? ??:??:??.????????? ???"
const char *tp;
for (tp = cp + sizeof(healthd) - 1; *tp && (*tp != '\n'); ++tp) {
if ((tp[0] == ' ') && (tp[1] == '2') && (tp[5] == '-')) {
calculateCorrection(now, tp + 1);
break;
}
}
} else if (!strncmp(cp, suspended, sizeof(suspended) - 1)) {
log_time real;
char *endp;