From d295eb68f9ba7e0731b8f0949ac4040f4001b084 Mon Sep 17 00:00:00 2001 From: Comma Device Date: Wed, 3 Feb 2021 22:57:34 -0800 Subject: [PATCH] fix logcatd after bugfix old-commit-hash: 366292a059eee602bc8bd8768730c1bdfb8004ac --- selfdrive/logcatd/logcatd_android.cc | 62 ++++++++++++++-------------- 1 file changed, 32 insertions(+), 30 deletions(-) diff --git a/selfdrive/logcatd/logcatd_android.cc b/selfdrive/logcatd/logcatd_android.cc index f9e1fdca89..5579dc0a32 100644 --- a/selfdrive/logcatd/logcatd_android.cc +++ b/selfdrive/logcatd/logcatd_android.cc @@ -5,8 +5,6 @@ #include "common/util.h" #include "messaging.hpp" -#define LOG_ID_KERNEL (log_id_t)5 - int main() { ExitHandler do_exit; log_time last_log_time = {}; @@ -14,43 +12,47 @@ int main() { PubMaster pm({"androidLog"}); while (!do_exit) { // setup android logging - logger_list *loggers = last_log_time.tv_sec == 0 ? - android_logger_list_alloc(ANDROID_LOG_RDONLY | ANDROID_LOG_NONBLOCK, 0, 0) : - android_logger_list_alloc_time(ANDROID_LOG_RDONLY | ANDROID_LOG_NONBLOCK, last_log_time, 0); - assert(loggers); - - const log_id_t log_ids[] = {LOG_ID_MAIN, LOG_ID_RADIO, LOG_ID_SYSTEM, LOG_ID_CRASH, LOG_ID_KERNEL}; - for (const auto &id : log_ids) { - struct logger *log = android_logger_open(loggers, id); - assert(log != nullptr); - } + logger_list *logger_list = last_log_time.tv_sec == 0 ? + android_logger_list_alloc(ANDROID_LOG_RDONLY | ANDROID_LOG_NONBLOCK, 0, 0) : + android_logger_list_alloc_time(ANDROID_LOG_RDONLY | ANDROID_LOG_NONBLOCK, last_log_time, 0); + assert(logger_list); + + struct logger *main_logger = android_logger_open(logger_list, LOG_ID_MAIN); + assert(main_logger); + struct logger *radio_logger = android_logger_open(logger_list, LOG_ID_RADIO); + assert(radio_logger); + struct logger *system_logger = android_logger_open(logger_list, LOG_ID_SYSTEM); + assert(system_logger); + struct logger *crash_logger = android_logger_open(logger_list, LOG_ID_CRASH); + assert(crash_logger); + struct logger *kernel_logger = android_logger_open(logger_list, (log_id_t)5); // LOG_ID_KERNEL + assert(kernel_logger); while (!do_exit) { log_msg log_msg; - int err = android_logger_list_read(loggers, &log_msg); + int err = android_logger_list_read(logger_list, &log_msg); if (err <= 0) break; AndroidLogEntry entry; err = android_log_processLogBuffer(&log_msg.entry_v1, &entry); - if (err == 0) { - last_log_time.tv_sec = entry.tv_sec; - last_log_time.tv_nsec = entry.tv_nsec; - - MessageBuilder msg; - auto androidEntry = msg.initEvent().initAndroidLog(); - androidEntry.setId(log_msg.id()); - androidEntry.setTs(entry.tv_sec * 1000000000ULL + entry.tv_nsec); - androidEntry.setPriority(entry.priority); - androidEntry.setPid(entry.pid); - androidEntry.setTid(entry.tid); - androidEntry.setTag(entry.tag); - androidEntry.setMessage(entry.message); - - pm.send("androidLog", msg); - } + if (err < 0) continue; + last_log_time.tv_sec = entry.tv_sec; + last_log_time.tv_nsec = entry.tv_nsec; + + MessageBuilder msg; + auto androidEntry = msg.initEvent().initAndroidLog(); + androidEntry.setId(log_msg.id()); + androidEntry.setTs(entry.tv_sec * 1000000000ULL + entry.tv_nsec); + androidEntry.setPriority(entry.priority); + androidEntry.setPid(entry.pid); + androidEntry.setTid(entry.tid); + androidEntry.setTag(entry.tag); + androidEntry.setMessage(entry.message); + + pm.send("androidLog", msg); } - android_logger_list_free(loggers); + android_logger_list_free(logger_list); util::sleep_for(500); } return 0;